【问题标题】:Remove inner contours within a larger contour using OpenCV使用 OpenCV 删除较大轮廓内的内部轮廓
【发布时间】:2022-01-23 06:38:39
【问题描述】:

我有以下图像,它具有黑色或紫色像素,代表道路图像分割的输出。正如您所看到的,道路轮廓清晰(可能看起来不是,但确实如此)但是道路内的某些区域显示为黑色而不是紫色。

我一直在尝试应用不同的东西来“平滑”它,但还没有找到一种方法来做到这一点。所以我尝试应用轮廓,如果你愿意的话,这给了我很好的外部轮廓和许多更小的嵌入轮廓。我正在想办法去除外轮廓内的所有“黑色”区域。

这是应用轮廓的图像 - 理想情况下,我会保留外部轮廓并将其中的所有内容替换为紫色。我有一种感觉这很容易但找不到它......

【问题讨论】:

  • OpenCV 允许在轮廓提取过程中提取层次结构。使用起来有点复杂,但可能你可以谷歌搜索一些例子。

标签: opencv image-processing computer-vision


【解决方案1】:

经过更多搜索后发现它是 findContours 方法的受支持部分...使用模式 RETR_EXTERNAL

contours, hierarchy = cv2.findContours(image=thresh, mode=cv2.RETR_EXTERNAL, method=cv2.CHAIN_APPROX_NONE)

我不得不将底行像素设为紫色以关闭轮廓,但这对我有用。

【讨论】:

    猜你喜欢
    • 2020-06-14
    • 2016-09-25
    • 2021-09-07
    • 2019-01-25
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2019-03-20
    相关资源
    最近更新 更多