День добрый.
Мне надо сравнить заданную зону(область) рабочего стола попиксельно с
указанным *.bmp файлом.
Опишите пожалуйста алгоритм при котором можно произвести эту процедуру.
Желатьно с использованием ключевых операторов.
Спасибо.
Сравнение попиксельно зоны рабочего стола с указанным *.bmp
Модераторы: Duncon, Hawk, Romeo, Eugie
1) Захват рабочего стола в память
2) Назовем коэфф. отличия пикселов (К) разность их компонентов цвета ((R2-R1)+(G2-G1)+(B2-B1))/765. Пикселы идентичны, если К=0.
3) Повторить вычисление (2) для всех пикселов исходного и сравниваемого изображений с накоплением К (возможна целочисленная оптимизация)
4) На выходе имеем К (0 - 1) характеризующее отличие двух изображений
Если изображения не равны по габаритным размерам, то предварительно
1) Привести габаритные размеры одного из изображений (Stretch, BitBlt) к размерам изображения с минимальными шириной и высотой (при разных пропорциях и ориентациях считать площадь)
Для сравнения визульной схожести изображений также можно предварительно
1) Преобразовать изображения к формату RGB24 32x32
2) Назовем коэфф. отличия пикселов (К) разность их компонентов цвета ((R2-R1)+(G2-G1)+(B2-B1))/765. Пикселы идентичны, если К=0.
3) Повторить вычисление (2) для всех пикселов исходного и сравниваемого изображений с накоплением К (возможна целочисленная оптимизация)
4) На выходе имеем К (0 - 1) характеризующее отличие двух изображений
Если изображения не равны по габаритным размерам, то предварительно
1) Привести габаритные размеры одного из изображений (Stretch, BitBlt) к размерам изображения с минимальными шириной и высотой (при разных пропорциях и ориентациях считать площадь)
Для сравнения визульной схожести изображений также можно предварительно
1) Преобразовать изображения к формату RGB24 32x32
It's a long way to the top if you wanna rock'n'roll
-
- Сообщения: 1
- Зарегистрирован: 07 янв 2009, 22:06
Нужно брать модули или квадраты разностей, например, (|R2-R1|+|G2-G1|+|B2-B1|)/765, иначе существуют пиксели разного цвета, у которых коэффициент 0somewhere писал(а):Назовем коэфф. отличия пикселов (К) разность их компонентов цвета ((R2-R1)+(G2-G1)+(B2-B1))/765.

- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
Цвета двух пикселей структуры COLORREF сравнить как две переменные DWORD на равенство.коэфф. отличия пикселов
Алгоритмы поиска одного изображения в другом - четкого или приблизительного сравнения - имеют общее название "компьютерное зрение". Рекомендую погуглить.
На заказ: VBA, Excel mc-black@yandex.ru