我浏览了几个模板匹配教程,我注意到大多数教程都试图匹配从原始图像裁剪的模板。但我想知道是否可以识别具有不同宽度和高度的相似物体?
在我的项目中,我生成了以下类型的图像。
我需要从中识别以下组件。
如何使用 opencv 或 javacv 存档?是否可以为此使用模板匹配?因为这个对象可以有不同的大小,所以可以使用它吗?请有人可以给出简单的代码示例来识别这个对象吗?
我不确定它在实际情况下是否对您有所帮助,但简单的阈值对您的输入图像起到了作用:
代码:
Mat src = imread("input.jpg"), tmp;
cvtColor(src, tmp, CV_BGR2GRAY);
threshold(tmp, tmp, 200, 255, THRESH_BINARY);
模板匹配/模式识别将为此工作。但是,据我所知,openCV 的模板匹配不使用缩放或旋转。它只是通过在图像上“滑动”模板并寻找最小的差异来找到最可能的位置。我个人会为此使用 HALCON,但这是一个非常昂贵的程序/包。