подскажите алгоритм сравнения двух изображений...
главное — скорость....
бобитовое сравнение никак не устраивает...
Re: сравнение изображений
От:
Аноним
Дата:
02.08.03 14:01
Оценка:
Здравствуйте, LoR, Вы писали:
LoR>подскажите алгоритм сравнения двух изображений... LoR>главное — скорость.... LoR>бобитовое сравнение никак не устраивает...
Возможно сравнение гистограмм интенсивностей для полутоновых изображений
или цветовых гистограмм для цветных изображений. В целях сравнения
три цветовые гистограммы можно объединить в одну. Гистограммы можно
строить не по всему изображению, а по какой-то области интереса.
Здравствуйте, LoR, Вы писали:
LoR>подскажите алгоритм сравнения двух изображений... LoR>главное — скорость.... LoR>бобитовое сравнение никак не устраивает...
Подождите, что значит побитовое?
В каком случае изображения признаются одинаковыми/разными/наполовину совпадающими?
Здравствуйте, BUran, Вы писали:
BU>Подождите, что значит побитовое? BU>В каком случае изображения признаются одинаковыми/разными/наполовину совпадающими?
соглашусь... наврал малость... не устраивает последвательный перебор двух изображений как пиксельных массивов.
BU>Правильно заданный вопрос — половина ответа
необходимо с течением времени удаленно отслеживать изменения десктопа... т.е. движения мыши, изменения в окнах и т.д.
решение, которое есть сейчас, так это разбиение "скриншота" на части, вычисление crc каждой, соответсвенно сравнение с crc предыдущего "скриншота"... это если не вдаваться в подробности...
может есть что-то лучшее? если бы пример какой, то было бы просто прекрасно...
Здравствуйте, LoR, Вы писали:
LoR>Здравствуйте, BUran, Вы писали:
BU>>Подождите, что значит побитовое? BU>>В каком случае изображения признаются одинаковыми/разными/наполовину совпадающими?
LoR>соглашусь... наврал малость... не устраивает последвательный перебор двух изображений как пиксельных массивов.
BU>>Правильно заданный вопрос — половина ответа
LoR>необходимо с течением времени удаленно отслеживать изменения десктопа... т.е. движения мыши, изменения в окнах и т.д.
А почему бы просто на сообщения не вешаться? Зачем через одно место все делать?
LoR>решение, которое есть сейчас, так это разбиение "скриншота" на части, вычисление crc каждой, соответсвенно сравнение с crc предыдущего "скриншота"... это если не вдаваться в подробности...
Так, как я понимаю, если все точки не проглядывать, то где находится мышка — никак почти не угадать. Так?
Тогда части экрана все-таки надо проверять. Только вопрос какие области, когда и т.п.
Вот это и надо продумать. Ведь просто просматривать весь экран — не проблема. Проблема делать это очень часто.
А какой framerate желателен?
LoR>может есть что-то лучшее? если бы пример какой, то было бы просто прекрасно...
Сообщения. И хуки (hooks). Примеры есть в RSDN/статьи/базовые сервисы/хуки.
Или это не винда?
Здравствуйте, LoR, Вы писали:
LoR>необходимо с течением времени удаленно отслеживать изменения десктопа... т.е. движения мыши, изменения в окнах и т.д. LoR>решение, которое есть сейчас, так это разбиение "скриншота" на части, вычисление crc каждой, соответсвенно сравнение с crc предыдущего "скриншота"... это если не вдаваться в подробности...
LoR>может есть что-то лучшее? если бы пример какой, то было бы просто прекрасно...
У тебя ровно два варианта:
1. Производить сравнение. Очевидно, что в любом случае придется перечитывать каждый пиксел картинки. Потому, что изменение могло произойти ровно в одном пикселе. Все. Дальнейшие упражнения типа вычисления CRC или еще чего помогут только сэкономить место в памяти, но никак не производительность — все определяется количеством чтений пикселов.
2. Перехватывать изменения. Поищи на RSDN (у меня сейчас недоступен инет) статьи про перехват вызовов API. Тебе надо будет перехватить вызовы GDI и изменения положения мыши (это вообще можно делать просто по таймеру). Все.
... << RSDN@Home 1.1 alpha 1 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.