PMG

Форумы по созданию игр
Текущее время: 13 сен 2026 18:17

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 31 янв 2008 12:34 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем

Вывел!?
Вот вывести и не получаеться!!! :cry:
GL-окно не выводит DIB, а если и выводит, то тонкую полоску - явно не соизмеримую с размерами, сформированого(если это так,конечно) DIBа!!!

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 фев 2008 09:55 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Т.е. вывод DIB работает.
Вначале надо проверить как твои данные запрашиваются из файла.
Как к твоему проекту подключить z_er0.dat?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 фев 2008 12:50 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем

Приложение открывает *.bmp и *.dat файлы станд. средств. винды - file->открыть.

Вообще-то z_er0.dat большой и я его резал на более мелкие матрицы. "Отрисовываються"(тонкая полоска) у меня только небольшие матрицы.

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 фев 2008 13:13 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Какой у тебя формат dat-файла. Вот его начало:
0 101 7.00 98.00
1 101 50.00 94.00

Что обознают эти цифры?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 фев 2008 16:52 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем

Лучше этот файл: http://slil.ru/25439785 - он обработан.
Загружаемые значения программа приводит к long.

Эта матрица - цифровое представление картинки. В данном случаи эта матрица сформирована генератором случайных чисел. Каждое число (в программе я его определяю как long по подобию с RGB) это значение пиксела в формате RGB. Это нужно для экстримально-корреляционного поиска какого-нибудь эталонного изображения и наглядного отображения .

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2008 09:28 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Вообще странно. Тут какой-то другой формат файла.
7 98 65 53 130 -150 172 179 197 205 173 182

Только целые, а там были и float?!

Т.е. первые три числа - это rgb первого пиксела? Или первое число - это и есть rgb в long (32bit), или же 7 - в градациях серого, тогда r=7, g=7, b=7. Но почему тогда есть значения свыш 255? Например, 450??

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2008 12:06 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем.

Первое число - это rgb в long (32bit)- значение пиксела. Следующее число в матрице - это следующий пиксел...
Этот long я потрошу на байты с помощью union:
Код:
union D
{
    long Num;
    unsigned char b[4];
};

Тогда b[0] - (я так понимаю, в винде так) - младший байт - r. И так к каждому загруженному числу.
Затем я создаю масив BYTE* bpt, куда поочередно записую эти тройки(b[0],b[1],b[2]). И вот этот массив пытаюсь отобразить... :(

Как уже говорил - тип значений в файле не важен: программа их восприймет как long =)

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2008 17:39 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Вот смотри в
BOOL CMBitmapEdit::LoadDataFromFileArr(LPCTSTR lpszFileName)

Не было:
m_DIBHeight = 0;

Поэтому если до этого выводилось изображение, m_DIBHeight считалось не верно.

z_er0_mod5.dat - вообще не читался из разделителя между цифрами.

Распечатай, ptByte и убедись, что оно соответствует ожиданиям и m_DIBWidth, m_DIBHeight.

И зачем используешь mvPixelRGB.push_back, если и так известен размер массива!

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 фев 2008 13:40 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем

Большое спасибо, Сергей, за участие! :D

Цитата:
z_er0_mod5.dat - вообще не читался из разделителя между цифрами.

В смысле: не читаеться!?. Разве не работает _tcstok()(или strtok())!?.
Цитата:
И зачем используешь mvPixelRGB.push_back, если и так известен размер массива!
???
Можно сказать, что я чешу левое ухо правой рукой! По умней решения я не нашел( по неопытности!):
В функции BOOL CMBitmapEdit::LoadDataFromFileArr() я обрабатываю лексемы текст. файла, полученные значения перевожу в long, записываю эти значения сначало в один вектор, а зачен разложенные побайтно - в другой: mvPixelRGB.push_back. И его пытаюсь вывести! =)

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 фев 2008 14:49 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Делаешь вроде все правильно. Но тебе нужны тестовые данные, чтобы проверить правильно или нет работает алгоритм твоей проги.

Вот смотри например:
long TempMin = sortM(mvDataFromF);

for ( i = 0; i < ss; ++i)
{
mvDataFromF[i] += -TempMin;
}

Мне кажется это неверно. Тебе нужен минумум и максимум доступных значений. Отрицательных значений у тебя быть не может, а есть.

>В смысле: не читаеться!?.

Посмотри что в buffer при чтении первой строки этого файла.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 фев 2008 16:02 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем

Спасибо за замечание, Сергей. :)

Цитата:
Посмотри что в buffer при чтении первой строки этого файла

У меня - строка с числами и обозначением пробелов...

Похоже мне не хватает понимания того как расположены байты в изображении :-(

А что вы скажете на такое решение
-загружаю числа в vec mvDataFromF;

-struct stByt {byte r,g,b};
typedef std::vector<stByt> VecData;
VecData mvPixelRGB;
И тогда уже:
Код:

for (i = 0; i < ss; ++i)
{
    m_BInL.InitialNum = mvDataFromF[i];

    mvPixelRGB[i].r = m_BInL.bytes[0];
    mvPixelRGB[i].g = m_BInL.bytes[1];
    mvPixelRGB[i].b = m_BInL.bytes[2];
}

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 фев 2008 16:42 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Надо знать формат числа в файле. У тебя есть описание на это?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 фев 2008 16:40 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем

Формат числа в файле - int. Вернее я его задаю!

Сергей, толь я не понял этого вопроса. Это имеет большое значение?

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2008 09:55 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Огромное! Как ты сам сказал:
>Похоже мне не хватает понимания того как расположены байты в изображении

Без этого - никак. Без разницы как ты будешь загружать изображение.

У тебя есть дока, как кодируются данные после аэро-космической съемки!?

Как ты сам писал:
>А это мне нужно потому, что я начинаю работать с аэро-космической съемкой
> и то, что сфотографировал спутник, будет присылаться ввиде массива(x,y и интенсивность).

Вот что такое интенсивность. На это есть дока?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2008 18:53 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем

С ЦАПа формируется матрица байт (1байт/1пиксель) , а под интенсивностью понимается насыщенность белого (значение ячейки матрицы).
Пока что, можно сказать, я на кошках тренируюсь :) - тестовые карты

А эти матрицы – это тестовые карты. Они формируються (значения) как int+”.”+”00”.
По моей просьбе эти карты просто обрабатывались в Exel: убираеться точка и нули.: http://slil.ru/25465024
Эти карты мне надо отображать с расчета 3 байта/пиксел.

http://slil.ru/25465037 - как ты, Сергей, советовал: отображать массив структур :)
Что-то получаеться (если загр этот массив [url]http://slil.ru/25465058
[/url] (что-то похожее)А отальные отобр как-то не понятно :(
Да и с размерами растра что-то не так :( e.g.
http://slil.ru/25465080(15Мб))

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB