python - 部分被遮挡的物体(平行线)检测
问题描述
我在使用 opencv/python 进行对象检测时遇到了一些问题。
如果你看图像,我已经知道两个绿色框的四个角。我试图检测的物体是红色衬里的物体,一种软管的形状。
我的计划是从绿色盒子(我已经完成)中获取软管的宽度(w),并找到彼此之间距离为 w 的平行线。
在这里,我遇到了两个问题,正在寻找潜在的解决方案。
我怎样才能检测到所有平行线?我认为最好从绿色框的四个角开始,因为这些点位于红线的路径中。我希望我可以从角落投射线条,使它们跟随白色像素,直到它们遇到死角或尖角。有没有办法在白色轮廓中导航?
下一个问题(假设 Q1 已解决)是红色线在中间被黄色部分遮挡。我怎样才能使两个红色部分被视为同一个对象?我正在寻找底部红线的尽头。
解决方案
我怎样才能检测到所有平行线?
我能想到的一种方法是用来HoughLines
检测图像中的线条。从那个链接:
lines = cv2.HoughLines(edges,1,np.pi/180,200)
这将返回所有检测到的线,由两个变量参数化:rho(与原点的距离)和theta(与原点的角度)
之后,平行线将是那些具有相同角度 (theta) 但 rho 值不同的线。
推荐阅读
- r - 协变量设置为平均值的 glm 系数的阴影置信区间带
- sql - 颤振: sqflite 插入返回类型
- python - 使用带有指令的 Sphinx 包含多个 RST 文件 .. 包括::
- acumatica - 更改 PO 源的下拉值冗词(Drop-Ship、Purchase to Order)
- python - 使用子进程创建 konsole 实例不会释放进程
- docker - java.lang.IllegalStateException:无法在 localhost:49167 连接到 Ryuk
- replace - 翻译问题:TypeError:预期的字符串或类似字节的对象
- c - 如何将数据包作为入口注入接口?
- kql - 在 Azure 资源图资源管理器中创建联接
- sql - TSQL,如何从数据库中的多个 JSON 行中检索数据