首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将几条线紧密地融合在一起?

如何将几条线紧密地融合在一起?
EN

Stack Overflow用户
提问于 2020-08-03 05:25:58
回答 1查看 232关注 0票数 0

我在努力完成我的项目中的一项任务。

我的任务是在无人机拍摄的图像中检测太阳能电池板的边界,以进一步检测太阳能电池板本身。因此,首先,我尝试使用HoughP绘制图像中的所有水平线,条件是斜率~0,这是结果(发现的线条以红色显示):

使用HoughP检测水平线

正如你所看到的,有几条虚假的线条。从这一点开始,我需要过滤掉所有这些假线,得到唯一代表这些太阳能电池板边框的线,像这样:

线表示太阳能电池板的边框

实际上,我从一份研究文件中读到,他们使用分层聚类算法将所有直线在一定距离内融合在一起

我了解了这种分层聚类算法,问题是,我不知道如何将这个算法应用于线性线,以及如何将几条线“融合”成一条线。

有人能指点我吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-03 06:29:03

要应用任何聚类算法,需要对要聚类的对象定义一些距离度量。对于直线段,我能想到的最明显的距离是两个段的任意一对点之间的最小距离,即:

代码语言:javascript
复制
def line_distance(line1, line2):
    return min( point_distance(point1, point2) for point1 in line1 for point2 in line2 )

然后,您可以使用这个距离度量和一些阈值距离d将两条线合并在一起,从而对得到的一组线应用分层聚类。

但是,我觉得在将图像传递到边缘检测器之前,最好是将其二值化,因为面板及其边框有相当大的对比颜色,而仅这一点就可能减少许多虚假的线条。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63224157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档