![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как быстрее всего сравнить два ричунка
Реактор © (2009-09-12 18:48:00)Есть два объекта Image. Необходимо сравнить их рисунки. Понятное дело что if Image1 <> Image2 не прокатит. Существует ли решение, что бы не проверять каждый пиксель в отдельности?
Германн (2009-09-13 01:11:00) [1]Судя по сабжу речь не идет о сравнении изображений.
Омлет (2009-09-12 23:46:00) [2]Но, естественно, попиксельно сравнивать нужно не через Canvas.Pixels, а через прямое чтение памяти. Например http://www.delphimaster.ru/articles/pixels/index.html. И статистически выгоднее начинать сравнение из средней строки, синхронно расходясь вверх и вниз.
Омлет (2009-09-12 23:37:00) [3]Всё же, правильнее сравнивать попиксельно, т.к. два изображения с разным bpp могут быть абсолютно одинаковы по цветам.
И потом к такому методу лекго прикрутить нечеткое сравнение.
KilkennyCat (2009-09-12 20:27:00) [4]
> TIF © (12.09.09 19:30) [5]
пиксели, байты... это все одно и тоже, масляное масло.
Реактор (2009-09-12 19:54:00) [5]Спасибо
TIF (2009-09-12 19:48:00) [6]> как им пользоваться?
F1
http://infodelphi.ru/Help/RADStudio/en/SysUtils.CompareMem.html
+ Google, вот первая ссылка из результатов поиска, например
http://helloworld.ru/texts/comp/lang/delphi/delphi5/mem/mem5103.htm
Реактор (2009-09-12 19:40:00) [7]
> Точное сравнение - CompareMem.
А можно поподробнее как им пользоваться?
TIF (2009-09-12 19:30:00) [8]> не перебирая все элементы?
Я про
Чтобы не проверять пиксели
И предлагаю считать контрольную сумму байтовизображений
Юрий Зотов (2009-09-12 19:25:00) [9]Точное сравнение - CompareMem.
KilkennyCat (2009-09-12 19:23:00) [10]
> Высчитай контрольные суммы
Контрольная сумма высчитывается не перебирая все элементы?
TIF (2009-09-12 19:20:00) [11]Чтобы не проверять пиксели? Высчитай контрольные суммы (хеши) и сравнивай их
Попиксельное же сравнение проще некуда:
http://delphimaster.net/view.php?folder=59&file=18-1225095501
KilkennyCat (2009-09-12 19:15:00) [12]Существует решение, оценивающее похожесть. Недавно в америкосовском фильме видел. Там очень быстро, умудряясь при этом показывать все перебираемые варианты, нашло фото в анфас по фото в профиль. Возможно, на сайте голливуда есть исходники.
Встречный вопрос: как доказать равенство массивов, не перебирая все элементы?