在图像中查找图像

时间:2009-01-18 02:07:17

标签: java python image

我正在寻找检测另一幅图像中图像的最佳方法。我有一个小图像,并希望找到它出现在一个更大的图像中的位置 - 实际上将是屏幕截图。从概念上讲,它就像是“沃尔多在哪里?”在较大的图像中搜索。

有没有有效/快速的方法来实现这一目标?速度比记忆更重要。

编辑:

“内部”图像可能并不总是具有相同的比例,但具有相同的旋转。

假设图像完全包含在另一个像素的像素内是不安全的。

3 个答案:

答案 0 :(得分:6)

维基百科有一篇关于Template Matching的文章,带有示例代码。

(虽然该页面不处理更改的比例,但它具有指向其他匹配样式的链接,例如Scale invariant feature transform

答案 1 :(得分:1)

如果还必须照顾轮换,则可以使用Generalised Hough Transform

答案 2 :(得分:0)

您可以将此视为子字符串问题,其中字母表中的字符为像素,字符串为图像。您还需要使用与换行符类似的特殊字符来表示图像边界。

您想要的算法位于维基百科:http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm

更新:如果你不能假设图像完全包含在另一个像素的像素中,那么这种方法将无效。

基于与上述相同的动态编程概念,还有其他更复杂的算法,但除非必要,否则我不会进入它们。