首页 > 解决方案 > 部分被遮挡的物体(平行线)检测

问题描述

我在使用 opencv/python 进行对象检测时遇到了一些问题。

如果你看图像,我已经知道两个绿色框的四个角。我试图检测的物体是红色衬里的物体,一种软管的形状。

我的计划是从绿色盒子(我已经完成)中获取软管的宽度(w),并找到彼此之间距离为 w 的平行线。

在这里,我遇到了两个问题,正在寻找潜在的解决方案。

  1. 我怎样才能检测到所有平行线?我认为最好从绿色框的四个角开始,因为这些点位于红线的路径中。我希望我可以从角落投射线条,使它们跟随白色像素,直到它们遇到死角或尖角。有没有办法在白色轮廓中导航?

  2. 下一个问题(假设 Q1 已解决)是红色线在中间被黄色部分遮挡。我怎样才能使两个红色部分被视为同一个对象?我正在寻找底部红线的尽头。

图片

标签: pythonopencvcontouredge-detectionocclusion

解决方案


我怎样才能检测到所有平行线?

我能想到的一种方法是用来HoughLines检测图像中的线条。从那个链接:

lines = cv2.HoughLines(edges,1,np.pi/180,200)

这将返回所有检测到的线,由两个变量参数化:rho(与原点的距离)和theta(与原点的角度)

之后,平行线将是那些具有相同角度 (theta) 但 rho 值不同的线


推荐阅读