|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.01.2009, 16:10 | #1 |
Регистрация: 23.01.2009
Сообщений: 7
|
Поиск одного изображения в другом
Добрый день коллеги! Очень прошу помочь!
Давно уже бьюсь, но никак не могу расколоть сабжевую проблему, гугл выдает некую информацию, но мне никак не удается ее адаптировать для своих нужд. Учтите, речь идет не о сравнении одного изображения с другим. Мне нужно организовать поиск одного изображения (маленького, порядка 100х50 пикселей) в другом - большом, порядка 1280х1024 пикселей, причем поиск должен осуществлятся максимально быстро < 1 сек. Результатом работы функкции должны быть координаты X,Y маленьгоко изображения в большом (исходном). Причем поиск долже выполнятся по полному схождению части большого изображения и маленького. Так как если искать по нескольки ключевых точек, то такие функции в моем случае дают сбой. Код:
|
23.01.2009, 16:11 | #2 |
Регистрация: 23.01.2009
Сообщений: 7
|
Есть другой вариант, с которым мне помогли, там очень быстро ищется под-изображение по 4-м точкам. Но этот алгоритм в силу его ограниченности часто дает сбой, а модифицировать его должным образом у меня не вышло.
Код:
|
23.01.2009, 22:24 | #3 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
По-моему простой перебор работает достаточно быстро (<200мс)
Код:
Код:
|
24.01.2009, 14:50 | #4 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
учитывая то, что в изображениях бывают нечеткости - другой цвет, качество, то возможность такого поиска стремится к нулю... если BMP то ладно, а JPG - проблема
|
24.01.2009, 18:41 | #5 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Цитата:
Вот только если искать по скрину и страница в браузере отмасштабирована (Firefox3 например умеет) тогда не прокатит.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
24.01.2009, 21:57 | #6 |
Регистрация: 23.01.2009
Сообщений: 7
|
Нет, баннер мне не нужо, это пиктограмка из другой программы и она не изменна, это растровое изображение BMP 24bit формата, просто важна именно скорость.
|
24.01.2009, 22:05 | #7 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Если BMP то проблем не будет. Ускорить это сложно... Полный перебор - решение.
Ну можно как-то сравнивать не всю картинку а куском - вырезать маленький кусок и если нашли такой-же то тогда уже в ту-же позицию сравнивать всю картинку. |
24.01.2009, 22:43 | #8 |
Регистрация: 23.01.2009
Сообщений: 7
|
Спасибо alexBlack!
Работает и действительно достаточно быстро,но я пока не могу сообразить почему? Мне комрад x128, помог, прислал такой код: Код:
Можешь прокоментировать.... хочется понять |
24.01.2009, 23:17 | #9 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Могу предположить:
В приведенном коде ScanLine вызывается внутри 3-го цикла. Итого ~Image1.Height*Image1.Width*Image2. Height = ~1024*1280*100 раз в моем - один раз. дальше только сложение/вычитание |
10.06.2012, 05:57 | #10 |
Новичок
Джуниор
Регистрация: 10.06.2012
Сообщений: 2
|
Извините что влезаю, но не подскажете как делать тоже самое только из компонента webbrouser1
Суть проблеммы нужно совершить клик по флеш приложению Последний раз редактировалось NikroBass; 10.06.2012 в 06:44. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На другом компе проги не работают | Ozerich | Общие вопросы C/C++ | 15 | 04.01.2009 01:09 |
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" | ruelCrow | Общие вопросы .NET | 3 | 10.07.2008 23:29 |
Не запускается на другом компе | nevo | БД в Delphi | 1 | 22.05.2008 14:05 |
Изменение SysListView32 в другом приложении | Legos | Общие вопросы Delphi | 1 | 16.10.2007 02:29 |
Выделенный текст в другом приложении | Nez | Win Api | 9 | 09.04.2007 01:52 |