对于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;
2014-08-18 19:55
提问者采纳
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);
这个是程序,你看看,第二张图就满足你的要求了,不过背景是黑色的而已。你可以把背景搞成白色的,不过有些噪声,建议你再滤波一下
-
提问者评价
-
谢谢!! 真的帮了我们大忙了!!