hough直线检测c语言,基于hough变换的直线检测

在折腾了好几天终于把这个软件给装上之后,终于将此例题完全运行了一遍。之前一直错在导入库函数时,加进的是手写的程序,事实上,将系统的P文件导入后,就可以用了。

>>

f=imread('.\ch10\building.tif');

>> g_canny=edge(f,'canny',[0.04

0.10],1.5); %hough检测前,要先检测出边缘。此用canny边缘检测器产生一个边缘映射。T=[0.04,0.10]为两个阈值。>T2为强边缘像素。T1

T2之间为弱边缘像素。sigma=1.5为平滑滤波器的标准差,可去掉弱一些的边缘。

>>imshow(g_canny)

>>

[H,theta,rho]=hough(g_canny,0.5); &对已检测出边缘图像进行hough变换

>>

imshow(theta,rho,H,[],'notruesize'),axis on,axis normal

>>

xlabel('\theta'),ylabel('\rho')

>> [r,c]=houghpeaks(H,5);

>> hold on

>>

plot(theta(c),rho(r),'linestyle','none','marker','s','color','w')

>>

lines=houghlines(g_canny,theta,rho,r,c)

lines =

1x9 struct array with fields:

point1

point2

length

theta

rho

>> figure,imshow(g_canny),hold

on

>> for k=1:length(lines)

xy=[lines(k).point1;lines(k).point2];

plot(xy(:,2),xy(:,1),'LineWidth',4,'Color',[.6 .6 .6]);

end

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值