matlab Hough变换

abc.png如下

Hough代码如下:

inputImg = ~im2bw(imread('abc.png'),0.5);

[H, theta, rho]= hough(inputImg,'RhoResolution', 0.5);
peak=houghpeaks(H , 6);
lines=houghlines(inputImg,theta,rho,peak);
figure
imshow(inputImg,[])
title('Hough Transform Detect Result')
hold on
for k=1:length(lines)
    xy=[lines(k).point1;lines(k).point2];
    plot(xy(:,1),xy(:,2),'LineWidth',2,'Color',[1 0 0]);
end

hough函数说明

输入图像是二值图像,参数有RhoRosolution和ThetaResolution,表示Rho和Theta的精度,默认均为1

houghpeaks函数说明

  • 第一个参数是hough得到的输出
  • 第二个参数表示顶点的个数,比取10个顶点,之后计算出来取前10个(若计算出来没有10个,则取所有的顶点)

houghline函数说明

  • 利用前两个函数计算出的参数,得到提取出的直线的始末点,从而实现绘图

提取后的图像

matlab Hough变换_第1张图片

你可能感兴趣的:(matlab,Hough)