对象(平行线)检测部件被遮挡的位置

问题描述 投票:1回答:1

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

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

我的计划是从绿色盒子(我已经完成)获得软管的宽度(w),并找到彼此相距w的并行线。

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

  1. 我怎么能检测到所有平行线?我认为从绿色框的四个角开始是好的,因为这些点位于红线的路径上。我希望我可以从角落投射线条,使它们跟随白色像素,直到它们遇到死角或尖角。有没有办法浏览白色轮廓?
  2. 下一个问题(假设Q1已经解决)是红线在中间由黄色部分遮挡。我如何才能将两个红色部分视为同一个对象?我正在寻找底部红线的尽头。

python opencv contour edge-detection occlusion
1个回答
1
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.