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

对于jpg格式的图像,和进行了二值化的图像进行相乘?怎么不行啊下面是程序和错误警告?请大神帮帮忙啊 时间不够了..没有财富值了,,欠着可以不。。。
A=imread('26.jpg');%读取原图像
B=rgb2gray(A);%将原图像转换为灰度图像
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);

警告:
??? Error using ==> times
Integers can only be combined with integers of the same class, or scalar doubles.
Error in ==> Untitled15 at 8
G=B.*F;

A=imread('26.jpg');%读取原图像
B=rgb2gray(A);%将原图像转换为灰度图像
t=graythresh(B);%计算阈值t
C=im2bw(B,t);%根据阈值二值化图像
D=imfill(C,8,'holes');%对二值化后的图像填充肺实质
E=D-C;%得到肺实质的图像E
F=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);


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

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答