資源簡介
改進(jìn)后的霍夫變換對圓的檢測速度更快,定位更加準(zhǔn)確。

代碼片段和文件信息
clc
clear
close?all
[filenamefilepath]?=?uigetfile({‘*.jpg;*.*‘}‘選擇圖片‘‘C:\Users\thinkpad\Desktop\張詩\‘);
I?=?imread([filepathfilename]);
[mnl]?=?size(I);
if?l?==?3
????I?=?rgb2gray(I);
end
BW?=?edge(I‘sobel‘);??
??
step_r?=?1;??
step_angle?=?0.1;??
minr?=?8;?
maxr?=?30;??
thresh?=?0.51;??
??
[hough_spacehough_circlepara]?=?hough_circle(BWstep_rstep_angleminrmaxrthresh);??
figure(1)imshow(I)title(‘原圖‘)??
figure(2)imshow(BW)title(‘邊緣‘)??
figure(3)imshow(hough_circle)title(‘檢測結(jié)果‘)??
??
circleParaXYR=para;??
??
%輸出??
fprintf(1‘\n---------------圓統(tǒng)計----------------\n‘);??
[rc]=size(circleParaXYR);%r=size(circleParaXYR1);??
fprintf(1‘??檢測出%d個圓\n‘r);%圓的個數(shù)??
fprintf(1‘??圓心?????半徑\n‘);%圓的個數(shù)??
for?n=1:r??
fprintf(1‘%d?(%d,%d)??%d\n‘nfloor(circleParaXYR(n1))floor(circleParaXYR(n2))floor(circleParaXYR(n3)));??
end??
??
%標(biāo)出圓??
figure(4)imshow(I)title(‘檢測出圖中的圓‘)??
hold?on;??
?plot(circleParaXYR(:2)?circleParaXYR(:1)?‘r+‘);??
?for?k?=?1?:?size(circleParaXYR?1)??
??t=0:0.01*pi:2*pi;??
??x=cos(t).*circleParaXYR(k3)+circleParaXYR(k2);y=sin(t).*circleParaXYR(k3)+circleParaXYR(k1);??
??plot(xy‘r-‘);??
?end??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????49941??2018-05-14?09:20??張詩\1.jpg
?????文件???????1242??2018-05-14?09:51??張詩\circledetection.m
?????文件???????3842??2018-05-14?09:47??張詩\hough_circle.m
?????目錄??????????0??2018-05-14?09:47??張詩
-----------?---------??----------?-----??----
????????????????55025????????????????????4
評論
共有 條評論