我有2张印刷电路板(PCB)图像,两者都显示相同的PCB。它们之间的区别在于照明,比例和方向(因为我用手机相机拍摄PCB图像)。
现在我想使用PCB的一个图像来检查电路的所有组件是否都安装在另一个相同的PCB上。
有没有方便的方法来检查两个相同PCB的两个图像之间的差异?
顺便说一下,我可以在PCB上添加一些标记,以便在OpenCV中我可以修正图像的方向和比例。
答案 0 :(得分:2)
PCB =印刷电路板,对吧?!?
您可以在两个图像中的匹配点之间计算投影projective transformation or homography。此转换可用于匹配平面(如PCB),并考虑图像之间的比例,旋转,剪切和投影变化。
这是一个非常简单的方法:
选择至少4个点并求解线性方程组。在Math SE上查看这个问题的答案,这就解释了这一点。
此OpenCV example使用(自动)功能匹配来查找相应的图像点,然后计算单应性。
这种转换的有趣推导可以在每个计算机视觉教科书中找到,例如,标准的Zisserman "Multiple View Geometry"或Ma' "An Invitation to 3-D Vision"。
修改强>
此方法不会消除镜面反射或其他强度差异。