猿问

遮挡零件的物体(平行线)检测

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

如果您查看图像,我已经知道两个绿色框的四个角。我要检测的对象是红色的内衬软管形状。

我的计划是从绿色框(我已经做过)中获得软管的宽度(w),并找到彼此之间有w距离的平行线。

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

  1. 如何检测所有平行线?我认为最好从绿色框的四个角开始,因为这些点位于红线的路径中。我希望我可以从角落投射线条,使它们跟随白色像素,直到遇到死角或尖角为止。有什么方法可以浏览白色轮廓吗?

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

慕的地6264312
浏览 179回答 1
1回答

慕田峪7331174

如何检测所有平行线?我能想到的一种方法是HoughLines用于检测图像中的线条。从该链接:lines = cv2.HoughLines(edges,1,np.pi/180,200)这将返回所有检测到的线,由两个变量进行参数设置:rho(距原点的距离)和theta(距原点的角度)在那之后,平行线将是那些具有相同角度(θ)但具有不同rho值的线。
随时随地看视频慕课网APP

相关分类

Python
我要回答