matlab 獲取圖像輪廓兩種方法
在圖像的視覺特徵研究領域,形狀特徵因更接近人的視覺特點,一直是人們的研究重點,而形狀的邊緣又反映出很多資訊,所以在研究圖像的特徵時有必要提取其邊緣輪廓以便以後的深入分析。
matlab中有很多集成的邊緣函數,可以很方便的提取圖像的邊緣。今天小沙就爲大家介紹一下。
使用beperim方法
(01)matlab中有提取圖形輪廓的函數bwperim。但其只針對二值圖像,所以需要先對灰度圖像進行二值化,選定合適的閾值進行二值化。I = imread(x27;1.jpg');BW = im2bw(I,0.4);BW2 = bwperim(BW,8);顯示圖像:subplot(1,2,1);imshow(I);title('original iamge');subplot(1,2,2), imshow(BW2);title('bwperim');
(02)由上圖可以看出,這個函數的侷限性在於, 它不僅提取外輪廓, 對圖形區域內部的孔洞所圍成的內部邊緣也提取出來。如果想只得到外形輪廓,則需要先進行填洞操作,後進行膨脹操作,去除孔、洞。填洞爲imfill。IBW = ~BW;F1 = imfill(IBW,'holes');SE = ones(3);F2 = imdilate(F1,SE,'same');BW3 = bwperim(F2);顯示圖像:subplot(1,2,1);imshow(I);title('original iamge');subplot(1,2,2), imshow(BW3);title('operated bwperim');
(03)這種方法具有一定侷限性和優點,可根據個人的具體需要合理使用。下面介紹一下另一種方法,也是較爲常用的方法:edge。
使用edge方法
(01)edge方法適用於灰度圖像。edge的語法較爲簡單。Bw = edge(I,‘methodname’)。第一個參數爲要提取輪廓的圖像,第二個參數爲使用的算子。不同算子提取出來的效果略有不同。第一種:SOBEL算子。I=imread('lena.bmp');% 提取圖像BW1=edge(I,'sobel'); %用SOBEL算子進行邊緣檢測顯示圖像:figure;subplot(1,2,1), imshow(I);title('original image');subplot(1,2,2), imshow(BW1);title('sobel');
(02)第二種:Roberts算子。I=imread('lena.bmp');% 提取圖像BW2=edge(I,'roberts');%用Roberts算子進行邊緣檢測顯示圖像:figure;subplot(1,2,1), imshow(I);title('original image');subplot(1,2,2), imshow(BW2);title('roberts');
(03)第三種:prewitt算子。I=imread('lena.bmp');% 提取圖像BW3=edge(I,'prewitt'); %用prewitt算子進行邊緣檢測顯示圖像:figure;subplot(1,2,1), imshow(I);title('original image');subplot(1,2,2), imshow(BW3);title('prewitt');
(04)第四種:log算子。I=imread('lena.bmp');% 提取圖像BW4=edge(I,'log'); %用log算子進行邊緣檢測顯示圖像:figure;subplot(1,2,1), imshow(I);title('original image');subplot(1,2,2), imshow(BW4);title('log');
(05)第五種:canny算子。I=imread('lena.bmp');% 提取圖像BW5=edge(I,'canny'); %用canny算子進行邊緣檢測顯示圖像:figure;subplot(1,2,1), imshow(I);title('original image');subplot(1,2,2), imshow(BW5);title('canny');
(06)我們也可以將圖像加上噪音然後進行提取,加了噪聲之後的圖像的輪廓要更加雜亂。第六種:加噪音提取。I=imread('lena.bmp');% 提取圖像h=fspecial('gaussian',5);BW6=edge(I,'canny');顯示圖像:figure;subplot(1,2,1), imshow(I);title('original image');subplot(1,2,2), imshow(BW6);title('gasussian&canny');
總結
(01)以上就是提取圖像輪廓常用的方法,根據需要選擇合適的方法纔能有更好的效果。
-
怎麼在Excel列A數據中篩選出列B數據?
已知excel列A數據和列B數據有部分內容相同,怎樣才能篩選出哪些混在列A中的列B數據呢?最笨的方法就是複製列B的數據查找。這裏,我給大家分享一種方法,既準確又快捷的方法。不信,您嘗試一下。操作方法(01)開啟需要編輯的Excel檔案,觀察列A和列B,列A列B有部分內容重複,現需...
-
顯卡位寬有哪些,有什麼區別
爲了更好的相容,更好的DIY,我們需要了解一下顯卡的位寬有哪些,有什麼區別。操作方法(01)顯卡位寬,主流有128bit還有64bit、128bit、256bit,顯存的位寬越高,顯卡的性能也就越好。(02)主流顯卡採用128bit位寬,128位的顯存能夠適應大多數遊戲。(03)顯存的帶寬=顯存頻率*顯存位...
-
如何用ppt繪製直尺刻度
老師們在教學到認識刻度時會經常用到畫刻度,尤其是出個練習題,畫個刻度非常頭疼,畫不標準或者不規範,今天我來告訴老師們一個非常簡單的繪製方法,一學就會。操作方法(01)先畫一條水平的直線(大約10多釐米),和一條豎直線段(0.2-0.3釐米)。(02)將豎直的線段複製並粘貼幾個(需要...
-
筆記本電腦win10如何快速取消“鎖屏密碼”?
日常工作生活中,除了工作和公衆場所,私人以及家裏電腦沒有必要設定鎖屏密碼,每次登入輸入一連串密碼顯得多餘,已經設定的可以取消。下面介紹一下“筆記本電腦win10如何快速取消“鎖屏密碼”?”操作方法(01)右鍵點擊桌面左下角“開始”——“執行”,開啟“執行”對話框...