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 是由字段组成的结构:
- 起点。
- 终点。
- 角特莎
- 距离 Rho
我能做些什么来摆脱这四个框架线吗?
编辑:
霍夫变换前的原图为:
问题出在您的预处理上。查看您放入 hough
中的二进制图像 BW
:其中包含这些行。
我建议你用这样的东西替换你的二值化:
BW = imbinarize(I, 128);
BW = bwmorph(BW,'skel');
我正在 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 是由字段组成的结构:
- 起点。
- 终点。
- 角特莎
- 距离 Rho
我能做些什么来摆脱这四个框架线吗?
编辑:
霍夫变换前的原图为:
问题出在您的预处理上。查看您放入 hough
中的二进制图像 BW
:其中包含这些行。
我建议你用这样的东西替换你的二值化:
BW = imbinarize(I, 128);
BW = bwmorph(BW,'skel');