• 大小: 6KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-06
  • 语言: Matlab
  • 标签: 轮廓提取  

资源简介

详细的分水岭分割方法提取目标轮廓,有详细的注释。包括了三种对比分析,直接使用分水岭,使用梯度图像分水岭分割,使用形态学重建分水岭分割

资源截图

代码片段和文件信息

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

评论

共有 条评论

相关资源