怎么检测图片里面的直线图形?

2025-11-05 11:11:33

1、Mathematica检测图片中的线条的方法是ImageLines,返回的是线条的端点坐标。

怎么检测图片里面的直线图形?

2、在原图中高亮显示所有的线条。

HighlightImage[img,{Green,Line/@ImageLines[img]}]

有一些线段没检测出来。

怎么检测图片里面的直线图形?

3、再测试一个图片,如下图。

怎么检测图片里面的直线图形?

4、直接套用ImageLines,结果在图片里面找到516条直线,令人惶恐。

怎么检测图片里面的直线图形?

5、正确的操作方法是,先检测图形的边界:

EdgeDetect[img]

怎么检测图片里面的直线图形?

6、然后,在边界图里面寻找直线。

EdgeDetect[img] // ImageLines[#, 0.28, 0.06] &

怎么检测图片里面的直线图形?

7、在原图中,着重显示这四条线:

img0 = HighlightImage[img, 

    {Blue, Line /@ (EdgeDetect[img] // ImageLines[#, .28, 0.06] &)}]

怎么检测图片里面的直线图形?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢