【问题标题】:How do we dectect edges of image with same background?我们如何检测具有相同背景的图像边缘?
【发布时间】:2014-12-22 05:43:23
【问题描述】:

我正在尝试使用 cvFindContours(灰色,存储,&contour,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE,cvPoint(0, 0)); 和 Canny,但我无法检测到它。 有什么办法可以检测到它。(所有处理都在c中完成)

【问题讨论】:

  • 我想在我拍照之前我会考虑改变我的对象所在的背景,或者对象的照明!!!
  • 您的机会是背景中有阴影(如果图像质量保持不变)。因此,您可以尝试从阴影开始,并尝试从那里提取阈值非常低的边缘。不幸的是,您可能无法轻松地区分阴影和物体,因此您提取的物体可能包含阴影伪影。

标签: c opencv


【解决方案1】:

首先均衡图像以获得更好的对比度。它也会增加噪点和其他纹理,但物体会非常明显。

现在,找到渐变,它会避开大部分渐变色和噪点以及一些纹理。

现在您可以尝试一些阈值,它会在阴影和对象周围提供良好的边缘和区域。

为了去除噪声和纹理,可以使用大内核对整个图像进行中值模糊,然后进行阈值化以获得有趣的区域掩码。

您也可以尝试上述方法的多次迭代。它不需要很高的精度,请尝试模糊纹理。

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 2020-06-15
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2017-03-07
    • 2014-03-23
    相关资源
    最近更新 更多