【问题标题】:detect outline of a object and handle the values within the outline检测对象的轮廓并处理轮廓内的值
【发布时间】:2020-09-14 14:46:50
【问题描述】:

目前,我正在处理一些图像,并想计算例如灰度值、像素面积等。 为此,我需要首先从图像中检测对象。

我试过了:

img = cv2.imread(file_path, cv2.IMREAD_GRAYSCALE)
edged = cv2.Canny(img, lower, upper)

但它会检测到对象的所有边缘。我只喜欢检测物体的轮廓(如下图,红线)。

有没有办法检测物体的轮廓?

【问题讨论】:

    标签: python image cv2 outline


    【解决方案1】:

    我建议使用 GRIP 软件来实现图像处理管道来执行此操作(我已经为您完成了)。

    我的图片处理如下:
    原图:

    1. 执行中值过滤模糊(平滑猫毛的边缘)

    2. 对图像执行 HSV 阈值(以创建去除猫周围白色的遮罩)

    3. 应用第 2 步中的遮罩以从原始猫图像中获取像素值

    现在使用该蒙版中的图像,您可以计算灰度值和像素区域

    这里是link下载GRIP软件

    这是我所有文件的link(包括自动生成的 Python 图像处理管道)

    【讨论】:

    • 所以我错过了一步。使图像模糊。我想这就是我的代码检测到所有边缘而不是图像轮廓的原因。谢谢,我试试这个方法。
    • @Dong-gyunKim 让我知道它是否有效,如果有效,请点赞:)
    • 其实我不想用python以外的其他程序。基本上你的回答对我没什么帮助。
    • @Dong-gyunKim 我通过第二个链接附加了 Python 代码。您不需要使用其他程序,只需从该链接下载文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 2023-03-21
    相关资源
    最近更新 更多