如何在OpenCV中匹配同一对象的两个不同图像的方向和比例?

时间:2015-07-22 17:48:08

标签: opencv computer-vision

我有2张印刷电路板(PCB)图像,两者都显示相同的PCB。它们之间的区别在于照明,比例和方向(因为我用手机相机拍摄PCB图像)。

现在我想使用PCB的一个图像来检查电路的所有组件是否都安装在另一个相同的PCB上。

有没有方便的方法来检查两个相同PCB的两个图像之间的差异?

顺便说一下,我可以在PCB上添加一些标记,以便在OpenCV中我可以修正图像的方向和比例。

1 个答案:

答案 0 :(得分:2)

PCB =印刷电路板,对吧?!?

您可以在两个图像中的匹配点之间计算投影projective transformation or homography。此转换可用于匹配平面(如PCB),并考虑图像之间的比例,旋转,剪切和投影变化。

这是一个非常简单的方法:

选择至少4个点并求解线性方程组。在Math SE上查看这个问题的答案,这就解释了这一点。

OpenCV example使用(自动)功能匹配来查找相应的图像点,然后计算单应性。

这种转换的有趣推导可以在每个计算机视觉教科书中找到,例如,标准的Zisserman "Multiple View Geometry"或Ma' "An Invitation to 3-D Vision"

修改

此方法不会消除镜面反射或其他强度差异。