声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1302|回复: 3

[图像处理] 请教 图像分割程序

[复制链接]
发表于 2009-6-1 18:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我用分水岭法做图像分割出现这个问题请高手指点,以下是程序和错误

afm = imread('12345.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); % 用不同的颜色表示分割出的不同区域


??? Error using ==> image
TrueColor CData contains element out of range 0.0 <= value <= 1.0.
Error in ==> C:\MATLAB6p5\toolbox\images\images\imshow.m
On line 104  ==> hh = image(xdata, ydata, cdata, 'BusyAction', 'cancel', ...
Error in ==> C:\MATLAB6p5\work\water3.m
On line 17  ==> figure, imshow(wat); % 用不同的颜色表示分割出的不同区域
>>
回复
分享到:

使用道具 举报

发表于 2009-6-2 06:43 | 显示全部楼层
如果你的图像是真彩图像,只需要在afm = imread('ct162.jpg'); 后加上
  1. afm=rgb2gray(afm);
复制代码

即可,另外Iec = imcomplement(Ienhance); 的作用并不是进一步增强图像,而是反色图像吧。
我试了一下这段代码,分割效果并不好。

评分

1

查看全部评分

 楼主| 发表于 2009-6-2 08:35 | 显示全部楼层

谢谢您

谢谢您的答复,:handshake 。这个分水岭算法对真彩色图像的分割效果确实不好,您那里有效果好点的分割算法吗?再次感谢您。
发表于 2009-6-2 10:30 | 显示全部楼层
很遗憾我目前对图像分割还没做深入的研究,也没有什么好的算法。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 11:34 , Processed in 0.056057 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表