我有2张bmp图片。ImageA是屏幕截图(示例),ImageB是其子集。例如说一个图标。
我想在ImageA中找到ImageB的X,Y坐标(如果存在)。
知道我会怎么做吗?
如果前两个问题的答案为 否 和 是 ,那么您有一个简单的问题。这也有助于了解 第三季度 的答案。
更新:
基本思想是:不要将imageB中每个像素周围的窗口与imageA中每个像素匹配并检查相关性,而要确定两个图像中的 可追踪 点(或特征),这些点是 可跟踪的 。因此,由于拐角周围的区域有点相似(因此不再赘述),因此看起来拐角确实是可追踪的-因此,让我们在两个图像中找到一些确实 很强的 拐角,并搜索看起来最相似的拐角。
这样就减少了用A搜索B中的每个像素,而不是搜索B中的500个角和A中的1000个角(或类似的东西)的问题-更快。
令人敬畏的是,您在OpenCV中可以使用多个这样的 角检测器 。如果您不喜欢使用emguCV(C#变体),请使用FAST检测器查找匹配的角,从而在图像之间定位多个特征。一旦找到了,就可以找到图像左上角的位置。