对于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;
恩恩 可以了 不过为什么感觉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);
这个是程序,你看看,第二张图就满足你的要求了,不过背景是黑色的而已。你可以把背景搞成白色的,不过有些噪声,建议你再滤波一下