Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Vlad1slav
21 / 21 / 5
Регистрация: 16.09.2009
Сообщений: 111
#1

Сравнение 2 картинок - C++

22.02.2012, 23:23. Просмотров 1381. Ответов 0
Метки нет (Все метки)

Есть 2 картинки, одного размера и почти одинаковые, за исключением некоторых пикселей.
Нужно создать картинки с несовпадающими(совпадающими) пикселями исходных картинок.

Где-то встречал пример с использованием растровых операций BitBlt.
Сейчас бы хотел повторить такое, но мне для этого мне нужно HDC.

Если я картинку получаю "скриншотом" с экрана, никаких проблемм нет:
C++
1
2
3
4
5
6
7
    HDC hdc=GetDC(hwnd);
 
    hBmp=CreateCompatibleBitmap(hdc, cx, cy);
    hMemDC=CreateCompatibleDC(hdc);
    SelectObject(hMemDC, hBmp);
 
    BitBlt(hMemDC, 0, 0, cx, cy, hdc, x, y,  SRCCOPY);
Но если считываю с файла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    FILE* f;
    LPBITMAPFILEHEADER lpbFileh;
    int infosize;
 
    f=_wfopen(fname, L"rb");
    lpbFileh=new BITMAPFILEHEADER;
    fread(lpbFileh, sizeof(BITMAPFILEHEADER), 1, f);
    infosize=lpbFileh->bfOffBits-sizeof(BITMAPFILEHEADER);
    lpBmpInfo=(LPBITMAPINFO)malloc(infosize);
    fread(lpBmpInfo, infosize, 1, f);
    lpBuffer=malloc(lpBmpInfo->bmiHeader.biSizeImage);
    fread(lpBuffer, lpBmpInfo->bmiHeader.biSizeImage, 1, f);
    fclose(f);
То как быть?

Попробывал след. код:
C++
1
2
3
4
    hMemDC=CreateCompatibleDC(NULL);
    hBmp=CreateCompatibleBitmap(NULL, lpBmpInfo->bmiHeader.biWidth, lpBmpInfo->bmiHeader.biHeight);
    SetDIBits(hMemDC, hBmp, 0, lpBmpInfo->bmiHeader.biHeight, lpBuffer, lpBmpInfo, DIB_RGB_COLORS);
    SelectObject(hMemDC, hBmp);
но hMemDC пустое...

В общем как при считывании картинки с диска, получить HDC, для функции BitBlt(...)

Добавлено через 56 минут
Сам задал вопрос-сам на него и ответил:
Достаточно передать HDC ненулевой, а HDC рабочего стола)

C++
1
2
3
4
HDC hdc=GetDC(NULL);
        hMemDC=CreateCompatibleDC(NULL);
        hBmp=CreateCompatibleBitmap(NULL, lpBmpInfo->bmiHeader.biWidth, lpBmpInfo->bmiHeader.biHeight);
        ReleaseDC(NULL, hdc);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2012, 23:23     Сравнение 2 картинок
Посмотрите здесь:

Массив картинок - C++
у мя есть игра пятнашки..там массив кнопок..как мне вмсто массива кнопок сделать массив моих картинок?которые я нарезал....

хранение картинок - C++
Добрый вечер. Появилась такая задача, но более эффективного алгоритма решения не могу придумать. Нужно, чтобы программа загружала...

Смена картинок на форме - C++
Помогите написать программу мне надо написать 3 окна с кнопкой чтобы первое окно было классом животные, а второе и третье подклассом...

Сохранение картинок в файл - C++
Здравствуйте! В моей программе возникла потребность сохранять картинки в файл таким образом чтобы: 1. Пользователь не мог его...

Смена картинок по таймеру - C++
Ребята, всем привет. У меня такая проблема: Представьте обратный отсчет "3...2...1...Вперед!" после нажатия кнопки "Старт". При нажатии...

фрактальный алгоритм сжатия картинок - C++
интересует реализация фрактального алгоритма на си или си ++.

Нейронные сети и распознавание картинок - C++
Недавно увлекся нейронными сетями, очень интересно стало. Написал их уже несколько, в том числе и для распознавания цифр, нарисованных на...

Создание 3d объекта из набора картинок - C++
По сути нужно создать 3д модель по набору картинок которые являются ее разрезами. Принцип роботы томографа. есть какие-то идеи?

Копаемся в коде по рисованию TGA картинок - C++
Я надеюсь это привлечет внимание и новичков и уже спецов Уже давно учу C++, но по книжкам это слишком не интересно и вот разбираю...

Перелистывание картинок через определённый промежуток времени - C++
К примеру, мне нужно что-бы при запуске конвертировании программы, 5 картинок менялись собой местами беспрерывно.Можно это сделать в C++...

Библиотеки C++ функций для преобразования файлов- картинок - C++
Не подскажите, какие лучше использовать библиотеки для работы с картинками BMP, JPG, GIF, PNG (желательно с исходными кодами) ?

Сохранить одну или несколько картинок в PDF - C++
столкнулся с дилемой. Требуется сохранить одну или несколько картинок в PDF (не кричите громко я сам в ужасе. Просто местное казначейство...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru