【问题标题】:Detecting very tiny defect on a bottle using opencv3 C++使用 opencv3 C++ 检测瓶子上非常小的缺陷
【发布时间】:2019-03-12 22:40:20
【问题描述】:

我有一张灰度图像,它有一个小缺陷,我是计算机视觉的初学者。我尝试了正常的步骤:

  1. 从高质量灰度凸轮获取图像。
  2. 默认的opencv直方图。
  3. 二进制阈值(获取掩码)。
  4. 删除背景。
  5. 我尝试使用 min 和 max(腐蚀和扩张)来使缺陷更大,以便我可以检测到它,但会出现很多黑点。我尝试了模糊、加权渐变、clahe 等,但没有与我合作。

这是我从摄像头得到的原始图像:

我的问题是:

  1. 如何使缺陷比所有图像对比度更暗(强度值更小),以便循环检测它们?
  2. 如果 Q1 不可行,有什么明确的方法可以解决这个问题?

【问题讨论】:

  • 瓶子没有瑕疵,放心。
  • 我在缺陷周围画了圆圈,链接显示原始图像和带有圆圈的图像显示缺陷。请向下滚动
  • 我肯定会从更好的灯光定位开始。首先,您必须定位灯光和摄像头,以便您可以>看到
  • @Croolman 好的,但在我修好照片之前,我应该遵循什么视觉方法?有固定的还是完全取决于输出?

标签: c++ opencv image-processing computer-vision opencv3.0


【解决方案1】:

缺陷真的很微弱。直方图均衡化会让您感觉它们清晰可见,但事实并非如此。

特别是在非平坦区域,无法将缺陷与正常特征区分开来,任何处理都会增强这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多