我在C中创建了一部分扫描仪,它将扫描部分的所有可能性都作为目录中的图像。我的代码当前获取该目录中的所有图像并将其转储到一个向量中。然后我为所有图像生成轮廓组。然后程序进入一个while循环,它不断从摄像头抓取图像,并为这些图像生成轮廓。我已经为零件设置了一个夹具,因此方向和尺寸不是问题,但我不想校准机器,因此模板图像和拍摄的零件图像之间可能会发生移动。如何比较二进制模式图像的两个轮廓?
什么是比较轮廓的最佳方法?我已经尝试了几种方法,包括没有轮廓的matchTemplate,但是如果你看看下面的两个部分,你可以看到这两个部分彼此非常接近,所以matchShapes和matchTemplate无法以我使用的方式区分它们他们。我也不确定如何使用cvMatchShapes。它只是将图像直接加载到匹配形状中,但结果不确定。我认为轮廓是要走的路,我只是不确定如何去实施比较阶段。任何帮助都会很棒。
你可以在这里查看模板:http://www.cryogendesign.com/partDetection.html“
[OpenCV matching images]可能重复(http://stackoverflow.com/questions/8893539/opencv-matching-images) – karlphillip 2012-04-27 18:39:52
或http://stackoverflow.com/questions/9444142/comparing-images-for - 相似性 – karlphillip 2012-04-27 18:40:38