資源簡介
詳細的分水嶺分割方法提取目標輪廓,有詳細的注釋。包括了三種對比分析,直接使用分水嶺,使用梯度圖像分水嶺分割,使用形態學重建分水嶺分割
代碼片段和文件信息
clc;
clear;
%1原圖像展示,分水嶺方法解釋
%1.0顯示集水盆圖像
filename=‘F:\R2016a\d.png‘;
f=imread(filename);%讀入圖像
Info=imfinfo(filename);
if?Info.BitDepth>8
J=rgb2gray(f);
end
figuremesh(double(J))title(‘集水盆圖像‘);%顯示圖像,類似集水盆地
%1.1原圖像
Y=f;
%1.2灰度圖像
H=?rgb2gray(Y);%轉化為灰度圖像
%1.3二值化圖像
E=im2bw(Ygraythresh(Y));
%1.4三維灰度高度圖像(未完成)
%顯示對比圖像
figure;
subplot(131)imshow(Y)title(‘原圖‘);%顯示原圖像
subplot(132)imshow(H)title(‘灰度圖像‘);%顯示灰度圖像
subplot(133)imshow(E)title(‘二值化圖像‘);%顯示二值化圖像
%2對分水嶺方法比較
%2.1直接用分水嶺
e=bwdist(E);?%求零值到最近非零值的距離,即集水盆地到分水嶺的距離(二值取反?)
l=watershed(-e);?%matlab自帶分水嶺算法,l中的零值即為水嶺
w=l==0;?%取出邊緣
g=E&~w;?%用w作為mask從二值圖像中取值
figure;
subplot(231)imshow(Y)title(‘原圖‘);%顯示原圖像
subplot(232)imshow(H)title(‘灰度圖像‘);%顯示灰度圖像
subplot(233)imshow(E)title(‘二值化圖像‘);%顯示二值化圖像
subplot(23
評論
共有 條評論