資源簡介
log算法檢測斑點程序,程序可讀性好,檢測結果不錯,可自行加載圖片進行檢測
代碼片段和文件信息
function?[points]?=?log_Blob(imgo_nb_blobs)
????%?功能:提取LoG斑點
????%?輸入:?
????%??????img?–輸入的圖像
????%???????o_nb_blobs?-需要檢測的斑點區域的數量
????%?輸出:
????%???????points?-檢測出的斑點
????%?參考文獻:
????%?Lindeberg?T.?Feature?Detection?with?Automatic?Scale?Selection
????%?IEEE?Transactions?Pattern?Analysis?Machine?Intelligence?1998?30?
????%?77-116
????
????%?輸入圖像
????img?=?double(img(::1));
????????
????%?設定檢測到斑點的數量
????if?nargin==1
????????nb_blobs?=?120;
????else
????????nb_blobs?=?o_nb_blobs;
????end
????
????%?設定LoG參數
????sigma_begin?=?2;
????sigma_end???=?15;
????sigma_step??=?1;
????sigma_array?=?sigma_begin:sigma_step:sigma_end;
????sigma_nb????=?numel(sigma_array);
????????
????%?變量
????img_height??=?size(img1);
????img_width???=?size(img2);
????????
????%?計算尺度規范化高斯拉普拉斯算子
????snlo?=?zeros(img_heightimg_widthsigma_nb);
????for?i=1:sigma_nb
????????sigma???????=?sigma_array(i);
snlo(::i)?=?sigma*sigma*imfilter(imgfspecial(‘log‘?floor(6*sigma+1)?sigma)‘replicate‘);
????end
????????
????%?搜索局部極值
????snlo_dil?????????????=?imdilate(snloones(333));
????blob_candidate_index?=?find(snlo==snlo_dil);
????blob_candidate_value?=?snlo(blob_candidate_index);
????[tmpindex]??????????=?sort(blob_candidate_value‘descend‘);
????
blob_index???????????=?blob_candidate_index(?index(1:min(nb_blobsnumel(index)))?);
[ligcolsca]????????=?ind2sub([img_heightimg_widthsigma_nb]blob_index);
????points???????????????=?[ligcol3*reshape(sigma_array(sca)[size(lig1)1])];
????
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1636??2012-02-05?19:59??log_Blob.m
-----------?---------??----------?-----??----
?????????????????1636????????????????????1
評論
共有 條評論