如何使用模板匹配来识别opencv / javacv中不同大小的对象?

时间:2012-08-23 07:49:31

标签: java opencv javacv

我经历了几个模板匹配教程,我注意到大多数教程试图匹配从原始图像裁剪的模板。但我想知道是否有可能识别出具有不同宽度和高度的类似物体?

在我的项目中,我生成了以下类型的图像。

enter image description here

我需要从中识别以下组件。

enter image description here

enter image description here

enter image description here

如何使用opencv或javacv存档?是否可以使用模板匹配?因为这个物体可以有不同的尺寸所以可以使用它吗?请问有人可以给出简单的代码示例来识别这些对象吗?

2 个答案:

答案 0 :(得分:2)

我不确定它在实际情况下会对您有所帮助,但是简单的阈值会对输入图像产生影响:

enter image description here

代码:

Mat src = imread("input.jpg"), tmp;
cvtColor(src, tmp, CV_BGR2GRAY);
threshold(tmp, tmp, 200, 255, THRESH_BINARY);

答案 1 :(得分:1)

模板匹配/模式识别对此有用。但是,据我所知,openCV的模板匹配不使用缩放或旋转。它只是通过在模型上“滑动”模板并寻找最小的差异来找到最可能的位置。 就个人而言,我会使用HALCON,但这是一个非常昂贵的程序/包。