以下是一段MATLAB程序,经运行没问题。有注释,有分水岭算法。
afm = imread('cameramantif');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); % 用不同的颜色表示分割出的不同区域
im=imread('h1jpg');
I=rgb2gray(im);
bw1=edge(I,'sobel');
bw2=edge(I,'roberts');
bw3=edge(I,'canny');
bw4=edge(I,'prewitt');
figure(2),subplot(2,2,1);imshow(bw4);title('prewitt算子效果图');
subplot(2,2,2);imshow(bw1);title('sobel算子效果图');
subplot(2,2,3);imshow(bw2);title('roberts算子效果图');
subplot(2,2,4);imshow(bw3);title('canny算子效果图');
问题在:kidstif,这是个文件名,首先你要在他前后加上单引号,然后还要确保它存在。
改了这个之后,看看有什么其他的错误提示。
补充:trees1=kids+20randn(size(kidstif));这里有问题,等号后面的kids没有定义。
以上。
偶然路过的老狼
以上就是关于寻找分水岭,canny边缘检测的matlab程序~全部的内容,包括:寻找分水岭,canny边缘检测的matlab程序~、跪求基于matlab对sem图像进行边缘检测,各个算子程序怎么写、用MATLAB实现小波包的图像边缘检测程序错误在线等!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)