图像中的对象检测

时间:2016-01-06 18:24:14

标签: opencv image-processing

在这里需要一些指导,我正在尝试识别图像中的不同对象并获取其边界框。

图像始终干净,背景透明,对象分离良好。

example image

例如,在上面的图像中有3个对象。任何想法或任何工具都会有所帮助。

2 个答案:

答案 0 :(得分:0)

由于对象是在这样的背景上,简单的连接组件标签将为您提供第一个基本答案。但是,找出哪些对象重叠会更复杂。

您是否有关于要检测的对象的信息?

答案 1 :(得分:0)

您可以使用模板匹配来查找花朵和右上角的对象(假设它们相似),给出花朵的图像(作为模板)和整个图片。

有一个模板检测示例here :(其中reference.png是原始图像,而template.png是您要检测的对象,如花)

这是花的图像(重命名为template.png):

enter image description here

运行模板匹配代码,整个图像为reference.png,我们可以找到花朵(以绿色矩形突出显示):

enter image description here

虽然代码没有实现边界框,但您可以使用boundingRect()绘制最小边界矩形(给定单个轮廓)。

大纲可能类似于:

  1. 在每个绿色框内设置ROI(感兴趣区域)。
  2. 找到粉红色物体的轮廓。
  3. 在找到的轮廓上使用boundingRect,并在花朵周围绘制最小矩形。