【问题标题】:Draw line on top side of binary mask using OpenCV?使用OpenCV在二进制掩码的顶部画线?
【发布时间】:2022-01-10 02:28:26
【问题描述】:

我有一个二进制掩码。在二进制图像中,我总是有这个作为水平带的掩码。我可以使用 cv2.findContours() 找到蒙版周围的边界,但我只对 蒙版顶线 感兴趣,如图 https://i.stack.imgur.com/tZm1a.png 所示(这条线是手绘的,所以它是不完美)。我的问题具体是如何只绘制顶线而不是下部。

使用:OpenCV 和 Python

【问题讨论】:

  • 发布您的原始二进制掩码,不带安迪标记。您可以执行一个 8 位垂直索贝尔滤波器,以仅找到从黑色到白色的步骤。那应该是白带的顶部。

标签: python opencv line opencv-contour


【解决方案1】:

如果您能够检测到要检测的对象的顶部和底部,则可以通过查看它们的像素位置来知道哪条线位于顶部。您可以应用形态梯度和cv2.connectedComponents() 来检测两个边界,然后平均它们的像素位置以了解哪个边界更位于顶部。

我不知道您的问题是否也在于绘制直线,但我认为拥有两个点(左右轴交叉点)然后使用 cv2.line(image, start_point, end_point, color, thickness) 应该很容易,其中 start_point 和 @ 987654324@是掩码顶部的限制。

如果您发布原始图片,它应该会有所帮助。

希望它有效。

【讨论】:

    猜你喜欢
    • 2015-04-15
    • 2022-01-09
    • 2017-05-26
    • 1970-01-01
    • 2018-07-21
    • 2018-09-27
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多