-
大小: 4KB文件類型: .m金幣: 1下載: 0 次發布日期: 2021-01-06
- 語言: Matlab
- 標簽: matlab??watershedalg??
資源簡介
用Matlab實現分水嶺算法,這個算法是圖像邊緣檢測的常用算法。
代碼片段和文件信息
%{
如果圖像中的目標物體是連在一起的,則分割起來會更困難,分水嶺算法經常用于處理這類問題,通常會取得比較好的效果。分水嶺分割算法把圖像看成一副“地形圖”,其中亮度比較強的地區像素值較大,而比較暗的地區像素比較小,通過尋找“匯水盆地”和“分水嶺界限”,對圖像進行分割。
步驟:
1.讀取圖像
2.求取圖像的邊界,在此基礎上可直接應用分水嶺分割算法,但效果不佳;
3.對圖像的前景和背景進行標記,其中每個對象內部的前景像素都是相連的,背景里面的每個像素值都不屬于任何目標物體;
4.計算分割函數,應用分水嶺分割算法的實現
注:直接用分水嶺分割算法效果并不好,如果在圖像中對前景和背景進行標注區別,再應用分水嶺算法會取得較好的分割效果。
例?步驟:
1.讀取圖像并求取圖像的邊界。
%}
rgb?=?imread(‘355.jpg‘);%讀取原圖像
%?rgb?=?imread(‘Sitophilus_oryzae_0001.tif‘);%讀取原圖像
I?=?rgb2gray(rgb);%轉化為灰度圖像
figure;?subplot(121)%顯示灰度圖像
imshow(I)
text(732501‘Image?courtesy?of?Corel‘...
‘FontSize‘7‘HorizontalAlignment‘‘right‘)
hy?=?fspecial(‘sobel‘);%sobel算子
hx?=?hy‘;
Iy?=?imfilter(double(I)?hy?‘replicate‘);%濾波求y方向邊緣
Ix?=?imfilter(double(I)?hx?‘replicate‘);%濾波求x方向邊緣
gradmag?=?sqrt(Ix.^2?+?Iy.^2);%求摸
subplot(122);?imsh
- 上一篇:循跡小車的V-REP與Matlab聯合仿真
- 下一篇:SVM用MATLAB實現
評論
共有 條評論