所以,我的问题是我必须在微芯片的两个图像之间找到共同点。这是两个图像的示例: 在这两个图像之间,我们可以清楚地看到一些常见的图案,如第一张图像右下角的导线,可以在第二张图像中相对相同的位置找到。此外,第一张图像中的白色Z形状可以在第二张图像中看到,有点难,但它就在那里。
我试图将它们与SURF(OpenCV)匹配,没有找到共同点。尝试在两个图像上应用一些滤镜,如边缘检测,阈值处理和我在GIMP中可以找到的其他滤镜,但无论我尝试过什么,都没有找到共同点。
我想知道你是否有任何想法解决这个问题?我现在的建议是手动将两个图像中的关键特征与线段匹配,但最好是自动化。
使用OpenCV的解决方案更可取,但我正在寻找任何可能的建议。在OpenCV中,我看到的所有模式匹配情况都是这个问题的方式更加明显。没有颜色差别等。
答案 0 :(得分:4)
除非需要实时,否则请使用一种简单的方法来测试旋转是否可以自动化:
与图像中的电路板类似的电路板通常基于垂直的直线段。因此,你可以通过找到linesegments来“去除斑点”并去除咖啡渍等东西。
考虑创建一个内核,其一侧有一条暗像素,另一侧有明亮的像素。将其折叠在图像上(或对其进行交叉相关)以识别具有几乎垂直或水平的亮/暗像素序列的所有像素。
你可以交织以加快速度。 如果你想要接近45 *表示的角度,污渍和斑点的边缘可以存活下来!
生成的图像可以解释为稀疏点云。 您现在可以使用RANSAC或其他类似方法来描述许多剩余的相关性,如线段。 *使用2点线段作为RANSAC的输入模型,如果小则降级。 *确定具有许多内点的无限线 *使用增长或binninng方法来分割线。
好处: 线段表示的高可能性实际上作为图像中的电路存在。段的2点描述,可能的变换很容易。 简单的数据解释,因为它可以叠加在openCV
旋转应该很容易找到旋转,将大多数找到的线与水平轴和/或垂直轴匹配。
重复两张图片。
现在,您可以通过简单的x,y互相关来确定图像之间的最佳平移。
答案 1 :(得分:1)
如果顶部图像始终具有该质量(准双层模式,易边缘检测),我会尝试使用良好的几何匹配算法(例如Cognex或Halcon),使用顶部图像进行训练并搜索底部图像。 / p>
也许值得首先补偿旋转(我希望没有缩放)。你可以通过确定主导边缘方向,可能使用霍夫变换。或者,更好的是,通过传感器的仔细机械校准。
无论如何,成功的机会很低,这是一个难题。