Найти положение изображения внутри большего изображения - PullRequest
6 голосов
/ 03 мая 2010

В основном я хочу найти пиксельное местоположение маленького изображения внутри большого изображения. Я искал что-то похожее на это, но мне не повезло.

Ответы [ 4 ]

1 голос
/ 03 мая 2010

Это зависит от того, насколько вы хотите, чтобы результат соответствовал вашему запросу изображения. Если вы пытаетесь сопоставить соответствующие части различных фотореалистичных изображений, взгляните на страницу Обнаружение функций Википедии. То, что вы хотите использовать, зависит от того, как вы ожидаете, когда одно изображение станет другим.

Тем не менее, если вы ищете точное попиксельное соответствие, поиск методом грубой силы, вероятно, плох. Это может быть O(m^2*n^2) для m*m изображения, используемого для поиска в n*n изображении. Используя лучшие алгоритмы, его можно улучшить до O(n^2), линейно по количеству пикселей. Хорошим подходом может быть понижение частоты обоих изображений и выполнение иерархического поиска.

0 голосов
/ 03 мая 2010

Если изображения равны попикселям, вы можете начать с поиска одного пикселя того же цвета, что и пиксель (0,0) в небольшом изображении. Найдя, сравните каждый пиксель в области, которая будет покрыта маленьким изображением. Если нет различий, вы нашли свою позицию. В противном случае начните с поиска следующего совпадения пикселей (0,0).

0 голосов
/ 03 мая 2010

Booyer-Moore Поиск звучит как решение здесь, если вы рассматриваете свои пиксели как символы и ищете точное совпадение. Гораздо быстрее, чем при поиске по пикселям.

0 голосов
/ 03 мая 2010

Возможно, вы могли бы использовать AForge Framework , чтобы сделать что-то подобное. Он предлагает множество инструментов для обработки изображений. Возможно, вы могли бы использовать их извлечение BLOB-объектов для извлечения BLOB-объектов, затем сравнить эти BLOB-объекты с сохраненным у вас изображением и посмотреть, соответствуют ли они.

...