使用计算机视觉进行产品检测 - 使用opencv进行边缘检测

时间:2016-06-11 08:54:14

标签: c++ opencv

我是opencv的新用户。我目前正在做一个用opencv进行产品检验的项目。我计划提取好产品的边缘和坏产品然后比较它们的边缘可能与均方差。然而,作为第一步,清楚地提取边缘已经非常困难。

好样品:好产品 [![在此输入图片说明] [1]] [1] 当我使用canny边缘检测时,好产品的边缘(图片的蓝色部分)仅包含产品的一部分,如下所示: 优质产品的优势 [![在此处输入图像说明] [2]] [2]

我还尝试使用adaptiveThreshold使灰度图像更清晰,然后使用边缘检测。但是,由于噪声很大,检测到的边缘不如预期好。

因此,我想问一个提取边缘的解决方案或用opencv比较好产品和坏产品的更好方法。抱歉上面的英文不好。

1 个答案:

答案 0 :(得分:0)

如果以下某些假设有效,则可以使此任务变得简单。例如:

  1. 产品沿同一生产线移动,因此所有产品图像的照明保持不变。
  2. 产品位于与相机焦平面平行的平面上,因此物体的旋转仅围绕镜头的轴线。
  3. 可以控制照明(这将有助于您获得更好的边缘,并且实际上用于生产线图像处理)
  4. 由于我们无法看到您添加的图像,因此有点难以确定情况究竟是什么。但如果上述假设是有效的,那么图像差分与图像签名相结合是一种可能的方法。

    另一种可能性是使用优质和不良产品训练Haar Cascade分类器。有了这个,边缘和所有将被照顾。但是你必须收集大量数据并训练分类器。