91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

虹膜定位,基于hough變換的實現,可以實現內外邊緣的定位,

資源截圖

代碼片段和文件信息

%?%%
%?clcclear?all?
%?I?=?imread(‘2.jpg‘);?
%?[mnl]?=?size(I);?
%?if?l>1?
%??I?=?rgb2gray(I);?%將圖像轉換為灰度圖像
%?end
%?thresh?=?32;
%?I1=I>=thresh;
%?I=I1;
%?BW?=?edge(I‘sobel‘)?%BW求得是邊緣圖像,他的thresh可以設定,未設定時則是自帶的thresh
%?%為什么當設定一個值得時候這個時候特別慢???????????
%?step_r?=?1;?
%?step_angle?=?0.1;?
%?r_min?=?10;?
%?r_max?=?60;?
%?
%?%?%%%%%%%%%%%%%%%%%%%%%%%%%%?
%?%?input?
%?%?BW:二值圖像;?
%?%?step_r:檢測的圓半徑步長?
%?%?step_angle:角度步長,單位為弧度?
%?%?r_min:最小圓半徑?
%?%?r_max:最大圓半徑?
%?%?p:閾值,0,1之間的數?
%?
%?%?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%?
%?%?output?
%?%?hough_space:參數空間,h(abr)表示圓心在(ab)半徑為r的圓上的點數?
%?%?hough_circl:二值圖像,檢測到的圓?
%?%?para:檢測到的圓的圓心、半徑?
%?[mn]?=?size(BW)?;
%?size_r?=?round((r_max-r_min)/step_r)+1;?
%?size_angle?=?round(2*pi/step_angle);?
%?
%?hough_space?=?zeros(mnsize_r);?
%?
%?[rowscols]?=?find(BW);?%返回非零元素所在的位置
%?ecount?=?size(rows);?
%?
%?%?Hough變換?
%?%?將圖像空間(xy)對應到參數空間(abr)?
%?%?a?=?x-r*cos(angle)?
%?%?b?=?y-r*sin(angle)?
%?for?i=1:ecount?
%??for?r=1:size_r?
%??for?k=1:size_angle?
%??a?=?round(rows(i)-(r_min+(r-1)*step_r)*cos(k*step_angle));?
%??b?=?round(cols(i)-(r_min+(r-1)*step_r)*sin(k*step_angle));?
%??if(a>0&a<=m&b>0&b<=n)?
%??hough_space(abr)?=?hough_space(abr)+1;?
%??end?
%??end?
%??end?
%?end?
%?%%%%%%%實現了霍夫圓的投票!
%?
%?
%?
%?
%?
%?%?搜索超過閾值的聚集點?
%?max_para?=?max(max(max(hough_space)));%這個值是63
%?%index?=?find(hough_space>=thresh)%max_para*thresh?);?返回的是符合要求的位置
%?index?=?find(hough_space==max_para)
%?length?=?size(index);
%?hough_circle?=?false(mn);?%生成邏輯非的矩陣
%?for?i=1:ecount?
%??for?k=1:length?
%??par3?=?floor(index(k)/(m*n))+1;?%index(k)/m*n的整數部分
%??par2?=?floor((index(k)-(par3-1)*(m*n))/m)+1;?%第一位小樹
%??par1?=?index(k)-(par3-1)*(m*n)-(par2-1)*m;?
%??if((rows(i)-par1)^2+(cols(i)-par2)^2<(r_min+(par3-1)*step_r)^2+5&...?
%??(rows(i)-par1)^2+(cols(i)-par2)^2>(r_min+(par3-1)*step_r)^2-5)?
%??hough_circle(rows(i)cols(i))?=?true?%超過閾值的部分如果符合最大最小半徑要求,則
%??end?
%??end?
%?end?
%?
%?[centerx?centery]=find(hough_circle);
%?
%?%?打印檢測結果?
%?for?k=1:length?
%??par3?=?floor(index(k)/(m*n))+1;?
%??par2?=?floor((index(k)-(par3-1)*(m*n))/m)+1;?
%??par1?=?index(k)-(par3-1)*(m*n)-(par2-1)*m;?
%??par3?=?r_min+(par3-1)*step_r;?
%??fprintf(1‘Center?%d?%d?radius?%d\n‘par1par2par3);?
%??para(:k)?=?[par1par2par3];?
%?end?
%?subplot(221)imshow(I)title(‘原圖‘)?
%?subplot(222)imshow(BW)title(‘邊緣‘)?
%?subplot(223)imshow(hough_circle)title(‘檢測結果‘)?
%?
%?
%?%%%%缺少畫圖部分,然后將程序轉化為opencv去實現
%?%程序其實很直白,簡答易懂,但是計算復雜度太高
%?%畫圓部分
%?x0=13;
%??y0=20;
%??r=5;
%??theta=0:pi/50:2*pi;
%??x=x0+r*cos(theta);
%??y=y0+r*sin(theta);
%??plot(xy‘-‘x0y0‘.‘);
%??axis?square;?
%??
%??
%?hFigure?=?figure(‘Visible‘?‘on‘?‘Position‘?[0?0?700?700]);
%?%set(gca‘ydir‘‘reverse‘‘xaxislocation‘‘top‘);
%?%movegui(hFigure?‘southwest‘);
%?
%?hAxes?=?axes(‘Visible‘?‘on‘?‘Position‘?[0.1?0.01?0.7?0.7]?‘Drawmode‘?‘fast‘);
%?%?
%??imshow?2.jpg
%??%?
%??axis?on
%?%?
%

評論

共有 條評論