|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2007, 16:32 | #1 |
Регистрация: 21.04.2007
Сообщений: 5
|
попиксельное сравнение
Доброго времени. господа!! подскажите такой вопрос несложный... есть два изображения, необходимо сравнить их попиксельно, и результат о их "схожести" вывести в процентах.... заранее спасибо!
|
29.05.2007, 17:05 | #2 |
Любитель
Пользователь
Регистрация: 29.05.2007
Сообщений: 16
|
О'кэй, помещаем оба изображения в байтовые массивы и приступаем к сравниванию. Вводим переменную: Valid типа Integer, мы будем её икрементировать постоянно по ходу сравнения (если цвет пикселей совпадает, добавляем к Valid еденицу, иначе не добавляем). Далее пользуемся пропорциями.
Количество пикселей всего = 300. Значение Valid = 160. Результат в процентах = round(160 * 100) / 300. Алгоритм сравнения и помещения изображений в массив приводить не буду ибо лень.
Хочешь рассмешить Бога, расскажи ему о планах на завтра…
Последний раз редактировалось zetrix; 30.05.2007 в 07:55. |
29.05.2007, 17:23 | #3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,088
|
цвет пикселя узнать можно работая с Canvas объекта TImage... кажись свойство Pixel
|
29.05.2007, 17:47 | #4 |
Любитель
Пользователь
Регистрация: 29.05.2007
Сообщений: 16
|
Можно. Только вот работать будет крайне медленно, если сравнивать изображение с расширением эдак 600 х 400. Сразу в массив сливать, в память.
Хочешь рассмешить Бога, расскажи ему о планах на завтра…
|
31.05.2007, 08:00 | #5 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
Используй ф-ию scanline
|
31.05.2007, 08:39 | #6 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
to Wolfheart:
Твой алгоритм не совсем правильный. Приведу пример: Имеется два абсолютно идентичных изображения A и B. Далее к каждой составляющей цвета пикселя изображения B прибавляем по единице. В результате на глаз ты никаких изменений не заметишь, но твой алгоритм скажет, что это абсолютно разные картинки. Да и к тому же размеры картинок могут быть разными. |
31.05.2007, 10:20 | #7 |
Любитель
Пользователь
Регистрация: 29.05.2007
Сообщений: 16
|
НЕ_АЙС, твои замечания верны, я привёл всего лишь упрощённую схему. В случае с изображениями различных размеров, конечно, мой вариант не годится. А по поводу составляющих цвета, можно ввсести допустимые границы каждого из них, скажем, плюс-минус 50.
Хочешь рассмешить Бога, расскажи ему о планах на завтра…
|
31.05.2007, 13:24 | #8 |
Пользователь
Регистрация: 31.05.2007
Сообщений: 10
|
to НЕ_АЙС: а решение этой задачи в общем виде ещё и не найдено)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение данных | White | БД в Delphi | 1 | 09.09.2008 22:32 |
сравнение дат | Geddar | Общие вопросы Delphi | 2 | 04.06.2008 19:09 |
Сравнение и подстановка | tsasha1 | Microsoft Office Excel | 2 | 08.04.2008 14:47 |
быстрый вывод карты на экран или попиксельное создание бмп | angel2c | Общие вопросы C/C++ | 2 | 17.12.2007 10:50 |
Сравнение Си и Ассемблера... | Sota | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 25.07.2007 16:15 |