我正在Matlab中实现Hough-Radon变换来检测一些模式(主要是直线)。我已经实现了它,但问题是它还将“帧”检测为一条线(见图)。
实现这个的代码基本上是:
[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是由字段组成的结构:
我能做些什么来摆脱四个框架线?
编辑:
执行霍夫变换之前的原始图片是:
答案 0 :(得分:1)
问题在于您的预处理。查看放入BW
的二进制图像hough
:其中包含这些行。
我建议你用这样的东西替换你的二值化:
BW = imbinarize(I, 128);
BW = bwmorph(BW,'skel');