寻找分水岭,canny边缘检测的matlab程序~

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:20:12
有分水岭,canny边缘检测的matlab程序分享吗?~
最近需要用到它们。。。
谢谢。。。
canny边缘检测的问题解决了,
分水岭分割算法的matlab程序还在寻找,
要基于梯度,或基于形态学梯度的分水岭算法,
基于标记的分水岭算法不要。。。

知道的朋友帮下我哦。。。555~

看看他人的回答

以下是一段MATLAB程序,经运行没问题。有注释,有分水岭算法。

afm = imread('cameraman.tif');figure, imshow(afm);
se = strel('disk', 15);
Itop = imtophat(afm, se); % 高帽变换
Ibot = imbothat(afm, se); % 低帽变换
figure, imshow(Itop, []); % 高帽变换,体现原始图像的灰度峰值
figure, imshow(Ibot, []); % 低帽变换,体现原始图像的灰度谷值
Ienhance = imsubtract(imadd(Itop, afm), Ibot);% 高帽图像与低帽图像相减,增强图像
figure, imshow(Ienhance);
Iec = imcomplement(Ienhance); % 进一步增强图像
Iemin = imextendedmin(Iec, 20); figure,imshow(Iemin) % 搜索Iec中的谷值
Iimpose = imimposemin(Iec, Iemin);
wat = watershed(Iimpose); % 分水岭分割
rgb = label2rgb(wat); figure, imshow(rgb); % 用不同的颜色表示分割出的不同区域