資源簡(jiǎn)介
圖像處理,霍夫圓邊緣檢測(cè),MATLAB,霍夫變換
代碼片段和文件信息
function?[y0detectx0detectAccumulator]?=?houghcircle(Imbinaryrthreshnumpeaks)
%HOUGHCIRCLE?-?detects?circles?with?specific?radius?in?a?binary?image.
%
%Comments:
%???????Function?uses?Standard?Hough?Transform?to?detect?circles?in?a?binary?image.
%???????According?to?the?Hough?Transform?for?circles?each?pixel?in?image?space
%???????corresponds?to?a?circle?in?Hough?space?and?vise?versa.?
%???????upper?left?corner?of?image?is?the?origin?of?coordinate?system.
%
%Usage:?[y0detectx0detectAccumulator]?=?houghcircle(Imbinaryrthresh)
%
%Arguments:
%???????Imbinary?-?a?binary?image.?image?pixels?that?have?value?equal?to?1?are
%??????????????????interested?pixels?for?HOUGHLINE?function.
%???????r????????-?radius?of?circles.
%???????thresh???-?a?threshold?value?that?determines?the?minimum?number?of
%??????????????????pixels?that?belong?to?a?circle?in?image?space.?threshold?must?be
%??????????????????bigger?than?or?equal?to?4(default).
%
%Returns:
%???????y0detect????-?row?coordinates?of?detected?circles.
%???????x0detect????-?column?coordinates?of?detected?circles.?
%???????Accumulator?-?the?accumulator?array?in?Hough?space.
%
%Written?by?:
%???????Amin?Sarafraz
%???????Photogrammetry?&?Computer?Vision?Devision
%???????Geomatics?DepartmentFaculty?of?Engineering
%???????University?of?TehranIran
%???????sarafraz@geomatics.ut.ac.ir
%
%May?52004?????????-?Original?version
%November?242004???-?Modified?versionfaster?and?better?performance
if?nargin?==?2
????thresh?=?4;
????numpeaks=1;
elseif?nargin?==?3
????numpeaks=1;
end
if?thresh?4
????error(‘treshold?value?must?be?bigger?or?equal?to?4‘);
????return
end
%Voting
Accumulator?=?zeros(size(Imbinary));
[yIndex?xIndex]?=?find(Imbinary);
for?cnt?=?1:length(xIndex)
????low=xIndex(cnt)-r;
????high=xIndex(cnt)+r;
????if?(low<1)?low=1;?end
????if?(high>size(Imbinary2))?high=size(Imbinary2);?end
????for?x0?=?low:high
????????y01?=?yIndex(cnt)-sqrt(r^2-(xIndex(cnt)-x0)^2);
????????y02?=?yIndex(cnt)+sqrt(r^2-(xIndex(cnt)-x0)^2);
????????y01?=?round(y01);?y02?=?round(y02);
????????if?y01?=?1
????????????Accumulator(y01x0)?=?Accumulator(y01x0)+1;
????????end
????????if?y02?=?1
????????????Accumulator(y02x0)?=?Accumulator(y02x0)+1;
????????end
????end
end
%?Finding?local?maxima?in?Accumulator
Accumulatortemp?=?Accumulator?-?thresh;
%?[Potential_y0?Potential_x0]=find(Accumulatortemp<0);
%?Accumulatortemp(Potential_y0Potential_x0)=0;
[y0detect?x0detect?hnew]?=?houghpeaks_circle(Accumulatortempnumpeaks);
%?y0detect?=?[];?x0detect?=?[];
%?AccumulatorbinaryMax?=?imregionalmax(Accumulator);
%?[Potential_y0?Potential_x0]?=?find(AccumulatorbinaryMax?==?1);
%?Accumulatortemp?=?Accumulator?-?thresh;
%?for?cnt?=?1:length(Potential_y0)
%?????if?Accumulatortemp(Potential_y0(cnt)Potential_x0(cnt))?>=?0
%?????????y0detect?=?[y0detect;Potential_y0(cnt)];
%?????????x0detect?=?[x0dete
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3044??2010-01-08?21:54??霍夫圓變換\houghcircle.m
?????文件???????2718??2010-01-08?19:18??霍夫圓變換\houghpeaks_circle.m
?????文件???????3182??2010-01-09?21:44??霍夫圓變換\hough_circle_feed.m
?????目錄??????????0??2010-05-04?22:37??霍夫圓變換
-----------?---------??----------?-----??----
?????????????????8944????????????????????4
評(píng)論
共有 條評(píng)論