代码之家  ›  专栏  ›  技术社区  ›  Pep

Matlab-Hough变换中的帧线

  •  0
  • Pep  · 技术社区  · 8 年前

    我正在Matlab中实现Hough-Radon变换来检测一些模式(主要是直线)。我已经实现了它,但问题是它还将“帧”检测为线(见图)。

    enter image description here

    实现这一点的代码基本上是:

    [H,T,R] = hough(BW,'RhoResolution',0.6,'Theta',-90:0.5:89.5);
    P  = houghpeaks(H,20,'threshold', ceil(0.1*max(H(:))));
    lines = houghlines(BW,T,R,P,'FillGap', 15,'MinLength',50);
    

    其中lines是由字段组成的结构:

    • 起点。
    • 结束点。
    • 特提斯角
    • 距离Rho

    我能做些什么来摆脱这四条框架线吗?

    编辑:

    执行Hough变换之前的原始图片是:

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  1
  •   Cris Luengo    8 年前

    问题是您的预处理。查看二进制图像 BW 你投入的 hough :其中包含这些行。

    我建议您将二值化替换为以下内容:

    BW = imbinarize(I, 128);
    BW = bwmorph(BW,'skel');