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