Matlab - 霍夫变换中的框架线

Matlab - Frame lines in Hough Transform

我正在 Matlab 中实施 Hough-Radon 变换以检测某些模式(主要是直线)。我已经实现了它,但问题是它还将 "frame" 检测为一行(见图)。

实现这个的代码基本上是:

[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 是由字段组成的结构:

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

编辑:

霍夫变换前的原图为:

问题出在您的预处理上。查看您放入 hough 中的二进制图像 BW:其中包含这些行。

我建议你用这样的东西替换你的二值化:

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