日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

susan算子的运用

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 susan算子的运用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SUSAN?算法

?????1997?年英國牛津大學的?S.M.smith??J.M.Brady?人提出了一種用于低層次圖像

處理的最小核值相似區(即?Smallest Univalue Segment Assimilating Nucleus,簡稱SUSAN)算法[65,66]。它直接對圖像灰度值進行操作,方法簡單,無需梯度運算,

保證了算法的效率;定位準確,對多個區域的結點也能精確檢測;并且具有積分

特性,對局部噪聲不敏感,抗噪能力強。

???SUSAN?準則的原理如圖?所示,用一個圓形模板遍歷圖像,若模板內其他

任意像素的灰度值與模板中心像素(核)的灰度值的差小于一定閾值,就認為該

點與核具有相同(或相近)的灰度值,滿足這樣條件的像素組成的區域稱為核值

相似區(Univalue Segment Assimilating Nucleus, USAN)。把圖像中的每個像素與

具有相近灰度值的局部區域相聯系是?SUSAN?準則的基。

具體檢測時,是用圓形模板掃描整個圖像,比較模板內每一像素與中心像素

的灰度值,并給定閾值來判別該像素是否屬于?USAN?區域,如下式:

式中,c(r,r0)為模板內屬于?USAN?區域的像素的判別函數,I (r0)是模板中心

像素(核)的灰度值,I (r)為模板內其他任意像素的灰度值,t是灰度差門限。它

影響檢測到角點的個數。t減小,獲得圖像中更多精細的變化,從而給出相對較多

的檢測數量。門限t必須根據圖像的對比度和噪聲等因素確定。

則圖像中某一點的?USAN?區域大小可由下式表示:

sUSAN?區域包含了圖像局部許多重要的結構信息,它的大小反映了圖像局部

特征的強度,當模板完全處于背景或目標中時,USAN?區域最大(如圖?2.6??a),

當模板移向目標邊緣時,USAN?區域逐漸變小(如圖?2.6??cde),當模板中心

處于角點位置時,USAN?區域很小(如圖?2.6??b)。得到每個像素對應的?USAN

區域大小后,利用下式產生初始角點響應:

其中,g?為幾何門限,影響檢測到的角點形狀,?g?越小,檢測到的角點越尖銳

(1) t , g的確定

????門限g決定了輸出角點的USAN區域的最大值,·即只要圖象中的象素具有比g

小的USAN區域,該點就被判定為角點。g的大小不但決定了可從圖象中提取角點

的多寡,而且如前所述,它還決定了所檢測到的角點的尖銳程度。所以一旦確定了

所需角點的質量(尖銳程度)g就可以取一個固定不變的值。門限t表示所能檢測

角點的最小對比度,也是能忽略的噪聲的最大容限。它主要決定了能夠提取的特征

數量,t越小,可從對比度越低的圖象中提取特征,而且提取的特征也越多。因此

對于不同對比度和噪聲情況的圖象,應取不同的t值。

SUSAN?準則有一個突出的優點,就是對局部噪聲不敏感,抗噪能力強。這是

由于它不依賴于前期圖像分割的結果,并避免了梯度計算,另外,USAN?區域是

由模板內與模板中心像素具有相似灰度值的像素累加而得,這實際上是一個積分

過程,對于高斯噪聲有很好的抑制作用。

SUSAN?二維特征檢測的最后一個階段,就是尋找初始角點響應的局部最大值,

也就是非最大抑制處理,以得到最終的角點位置。非最大抑制顧名思義,就是在

局部范圍內,如果中心像素的初始響應是此區域內的最大值,則保留其值,否則

刪除,這樣就可以得到局部區域的最大值。

?matlab 代碼:

im=imread('xinglong.jpg'); >> image_out = susan(im,0.25);
function image_out = susan(im,threshold) % 功能:實現運用SUNSAN算子進行邊緣檢測 % 輸入:image_in-輸入的待檢測的圖像 % threshold-閾值 % 輸出:image_out-檢測邊緣出的二值圖像% 將輸入的圖像矩陣轉換成double型 d = length(size(im)); if d==3image=double(rgb2gray(im)); elseif d==2image=double(im); end% 建立SUSAN模板mask = ([ 0 0 1 1 1 0 0 ;0 1 1 1 1 1 0;1 1 1 1 1 1 1;1 1 1 1 1 1 1;1 1 1 1 1 1 1;0 1 1 1 1 1 0;0 0 1 1 1 0 0]); R=zeros(size(image)); % 定義USAN 區域 nmax = 3*37/4;[a b]=size(image); new=zeros(a+7,b+7); [c d]=size(new); new(4:c-4,4:d-4)=image;for i=4:c-4for j=4:d-4current_image = new(i-3:i+3,j-3:j+3);current_masked_image = mask.*current_image;% 調用susan_threshold函數進行閾值比較處理current_thresholded = susan_threshold(current_masked_image,threshold);g=sum(current_thresholded(:));if nmax<gR(i,j) = g-nmax;elseR(i,j) = 0;endend endimage_out=R(4:c-4,4:d-4);
function thresholded = susan_threshold(image,threshold) % 功能:設定SUSAN算法的閾值[a b]=size(image); intensity_center = image((a+1)/2,(b+1)/2);temp1 = (image-intensity_center)/threshold; temp2 = temp1.^6; thresholded = exp(-1*temp2);

總結

以上是生活随笔為你收集整理的susan算子的运用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。