powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / обработка изображения
14 сообщений из 14, страница 1 из 1
обработка изображения
    #33654982
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу прочитанное из файла изображение подвергнуть вч или нч фильтрации. Делал такое раньше для черно-белого изображения. С цветным пока не пробовал. Надо обрабатывать отдельно по каждой из трех компонент ? Здесь проблема не программная больше, а надо знать как из трех основных цветов формируется цветное. Если зависимость не линейная, то просто обрабатывать по отдельности каждый цвет мало - надо знать в какой пропорции их потом "сложить". Кто-нибудь делал ?
...
Рейтинг: 0 / 0
обработка изображения
    #33655041
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, ты в курсе, сколько различных форматов изображений ? Я только штук 10 знаю.
...
Рейтинг: 0 / 0
обработка изображения
    #33655094
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivБлин, ты в курсе, сколько различных форматов изображений ? Я только штук 10 знаю.
Я говорю не о форматах. У меня книжка по форматам. Там их бездна. Шучу, но конечно больше 10.
Я говорю лишь о том, что черно-белое изображение.Там обрабатываешь (фильтруешь) амплитуду (значение). Цветное формируется из 3 базовых цветов.
Мой вопрос. Можно отфильтровать 3 базовых плоскости поотдельности, а затем вывести в согответствующем формате. Или зависимость нелинейная при композиции. И так, как я хотел бы, делать нельзя ?
...
Рейтинг: 0 / 0
обработка изображения
    #33655621
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для цветных изображений, насколько мне известно, частотные фильтры
работают точно также, как и для ЧБ. Применяются по отдельным
плоскостям.

Вопрос о форматах неясен. Если имеются в виду способы
хранения (8:8:8, 5:6:5 и.т.п), то формула - та-же самая.
Только макс. значение нормируется по разрядной сетке
для соотв. канала.
...
Рейтинг: 0 / 0
обработка изображения
    #33656156
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДля цветных изображений, насколько мне известно, частотные фильтры работают точно также, как и для ЧБ. Применяются по отдельным
плоскостям. Вопрос о форматах неясен. Если имеются в виду способы
хранения (8:8:8, 5:6:5 и.т.п), то формула - та-же самая.
Только макс. значение нормируется по разрядной сетке
для соотв. канала.
С этого места (красным) чуть подробнее пожалуйста. Нормировка относительно максимума или я че-то недопонял ?
Нашел, что заголовок в bmp занимает первые 54 байта, а дальше идет сама картинка. Теперь надо байтики пощупать.
...
Рейтинг: 0 / 0
обработка изображения
    #33665881
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С чтением разобрался. Теперь меня интересует программирование видеоадаптера SVGA в Visual C++ с ассемблерными вставками. Пожалуйста хотя бы немного сориентируйте. Полагаю, что в Kernel есть какие-то функции для этого.
...
Рейтинг: 0 / 0
обработка изображения
    #33665904
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
void CImageDlg::OnPaint()
{
CPaintDC dc(this);
CBitmap m_bmp_1;
m_bmp_1.LoadBitmap(InString);
CDC memdc;
memdc.CreateCompatibleDC(&dc);
memdc.SelectObject(&m_bmp_1);
BITMAP bm;
m_bmp_1.GetObject(sizeof(bm),&bm);
x_bmp=bm.bmWidth;
y_bmp=bm.bmHeight;
dc.BitBlt(0,0,x_bmp,y_bmp,&memdc,0,0,SRCCOPY);
}
void CImageDlg::OnButton1()
{
char InString[9],as[9]={0}; int a;
CFile f;
if(f.Open("d:\\1_1.bmp",CFile::modeRead)==FALSE)
return;
f.Read(InString,9);
strcat(as, InString);
a=f.GetLength();
//MessageBox(as);
//m_edit1=as[0];
m_edit1=a;
m_edit2=as[55];
UpdateData(false);
CClientDC dc(this);
dc.PatBlt(0,0,800,600,PATCOPY);
CBitmap m_bmp_2;
m_bmp_2.LoadBitmap(InString);
CDC memoryDC;
memoryDC.CreateCompatibleDC(&dc);
CBrush brush;
brush.CreatePatternBrush(&m_bmp_2);
dc.SelectObject(&brush);
dc.Rectangle(0,0,800,600);
}
Прочитать я прочитал,а вот вполне стандартно показать на экране не смог. Где-то ошибка в моей логике.
...
Рейтинг: 0 / 0
обработка изображения
    #33665920
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RTFM ::SetDIBitsToDevice(), ::StretchDIBitsToDevice()
...
Рейтинг: 0 / 0
обработка изображения
    #33666190
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ИльичRTFM ::SetDIBitsToDevice(), ::StretchDIBitsToDevice()
Интересно, а чуть подробней можно ?
...
Рейтинг: 0 / 0
обработка изображения
    #33666750
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neskif Сергей ИльичRTFM ::SetDIBitsToDevice(), ::StretchDIBitsToDevice()
Интересно, а чуть подробней можно ?
тынц
...
Рейтинг: 0 / 0
обработка изображения
    #33668313
neskif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Ильич neskif Сергей ИльичRTFM ::SetDIBitsToDevice(), ::StretchDIBitsToDevice() Интересно, а чуть подробней можно ?
тынц
Увлекательно. Большое спасибо Сергей Ильич!
...
Рейтинг: 0 / 0
обработка изображения
    #33668504
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neskif Сергей Ильич neskif Сергей ИльичRTFM ::SetDIBitsToDevice(), ::StretchDIBitsToDevice() Интересно, а чуть подробней можно ?
тынц
Увлекательно. Большое спасибо Сергей Ильич!
Блин, чего я тебе все разжевывать обязан? Судя по коду, ты пытаешься открыть bmp файл и нарисовать его на экране. BMP файл представляет из себя плоский двухмерный массив, сброшенный в дисковый файл. Сверху к нему приделан заголовок, в котором описана ширина и высота массива + цветовая модель. Следовательно, тебе надо прочитать заголовок, разместить в куче массив нужного размера и прочитать в него весь оставшийся кусок файла. Имея в памяти массив, ты его можешь Бит-Блитнуть в контекст отображения при помощи SetDIBitsToDevice(). Можно его также промасштабировать при помощи StretchDIBitsToDevice().
Проще некуда. Четырех твоих флеймов (если не изменяет память) это не стоит.
...
Рейтинг: 0 / 0
обработка изображения
    #33669232
latex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты говорил вроде что у тебя книжка с описаниями форматов?
а можна линк где взял?
...
Рейтинг: 0 / 0
обработка изображения
    #33669258
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neskifС чтением разобрался. Теперь меня интересует программирование видеоадаптера SVGA в Visual C++ с ассемблерными вставками. Пожалуйста хотя бы немного сориентируйте. Полагаю, что в Kernel есть какие-то функции для этого.

Посмотри на это: http://antigrain.com может полезным окажется...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / обработка изображения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]