在折腾了好几天终于把这个软件给装上之后,终于将此例题完全运行了一遍。之前一直错在导入库函数时,加进的是手写的程序,事实上,将系统的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