用matlab实现二值化图像的一个问题

来源:互联网 发布:产业链大数据分析系统 编辑:程序博客网 时间:2024/06/05 23:52

用matlab实现二值化图像和原图相乘?急用啊!!!!木有财富值了 求帮助呢!!

2014-08-18 19:38心不死即可 | 浏览 963 次
 编程语言
对于jpg格式的图像,和进行了二值化的图像进行相乘?怎么不行啊下面是程序和错误警告?请大神帮帮忙啊   时间不够了..没有财富值了,,欠着可以不。。。A=imread('26.jpg');%读取原图像B=rgb2gray(A);%将原图像转换为灰度图像t=graythresh(B);%计算阈值tC=im2bw(B,t);%根据阈值二值化图像D=imfill(C,8,'holes');%对二值化后的图像填充肺实质E=D-C;%得到肺实质的图像EF=imfill(E,8,'holes');%填充肺实质空洞G=B.*F;imshow(A);figure,imshow(G); 警告:??? Error using ==> timesIntegers can only be combined with integers of the same class, or scalar doubles.Error in ==> Untitled15 at 8G=B.*F;
2014-08-18 19:55提问者采纳
        
    
A=imread('26.jpg');%读取原图像B=rgb2gray(A);%将原图像转换为灰度图像t=graythresh(B);%计算阈值tC=im2bw(B,t);%根据阈值二值化图像D=imfill(C,8,'holes');%对二值化后的图像填充肺实质E=D-C;%得到肺实质的图像EF=imfill(E,8,'holes');%填充肺实质空洞B=double(B);  %%%%%%%%%%%%%%%注意这个地方,必须换成double类型G=B.*F;imshow(A);figure,imshow(G);
追问:
恩恩 可以了 不过为什么感觉G和F一样呢?
追答:
这个我就不太明白了,我只知道你的错误原因是由于 乘法时类型不一致引起的,并且在进行图像处理时我们通常就要进行 double 的转换。  1:为什么 G F一样,是由于你用二值化矩阵乘以图像矩阵当然结果就是二值化图像了
追问:
不是矩阵对应元素相乘  然后二值化的白色是1  黑色是0  那么得到的应该是把原图像  我所需要的那个目标分离的部分啊?怎么回事二值化的图像呢??不太理解
追答:
对不起,刚才那个理解错了,“二值化矩阵乘以图像矩阵当然结果就是二值化图像了”
追问:
恩恩??什么意思啊  我没有财富值了 不能追问了  不能理解二值化矩阵乘以图像举证结果是二值化图像  这句话
追答:
对不起,刚才那个理解错了出来的结果是个灰度矩阵。但是其余地方是黑色的,你给我发张图,我给你看结果!
追问:

  这个是原图片我就是使用上面的程序对它进行处理的  万谢啊!!

追答:

A=imread('29.jpg');%读取原图像

BB=rgb2gray(A);%将原图像转换为灰度图像

B= im2double(BB);

t=graythresh(B);%计算阈值t

C=im2bw(B,t);%根据阈值二值化图像

D=imfill(C,8,'holes');%对二值化后的图像填充肺实质

E=D-C;%得到肺实质的图像E



F=imfill(E,8,'holes');%填充肺实质空洞


G=B.*F;

imshow(A);figure,imshow(G);


这个是程序,你看看,第二张图就满足你的要求了,不过背景是黑色的而已。你可以把背景搞成白色的,不过有些噪声,建议你再滤波一下

提问者评价
谢谢!! 真的帮了我们大忙了!!
0 0
原创粉丝点击