2 pfeffer Pfeffer 于 2017.09.07 03:52 提问

Matlab图像计算 除法 没有办法理解/ 非诚勿扰
>> moon=imread('moon.tif');
>> subplot(2,3,1);imshow(moon);title('moon');
>> I=double(moon); **% 为什么加double的时候, 图像会变黑呢**
**>> subplot(2,3,2);imshow(I);title('I');
>> J=I*0.43+90;
>> subplot(2,3,2);imshow(J);title('J');
>> moon2=uint8(J); **% 为什么加unit8的时候, 图像又还原一点了**
**>> subplot(2,3,4);imshow(moon2);title('moon2');
>> J=imdivide(moon,moon2);// 为什么moon减去moon2图像又全部都变黑了
>> subplot(2,3,5);imshow(J);title('J=moon/moon2,imshow(J)');
>> subplot(2,3,6);imshow(J,[]);title('J=moon/moon2,imshow(J,[])');  %imshow(J,[ ])=imshow(J,[min(I(:))  max(I(:))]); //为什么又变成黑白分明了.

图片说明

4个回答

qq_24112277
qq_24112277   2017.09.07 10:45
已采纳

imread读取图片,读取后默认是一个uint16 (16位) 的数组,转double(64位) 数据类型发生改变,图像变化,
你加uint8还原一点原因不一定单纯是uint8(8位),你还进行了数据计算
imshow(J) 直接显示图片
imshow(J,[]) 显示图片,并将图片的最大值和最小值分别作为纯白(255)和纯黑(0),中间的K值映射为0到255之间的标准灰度值。

lzwillforever
lzwillforever   2017.09.07 09:31

为什么看不见I和J图像

devmiao
devmiao   Ds   Rxr 2017.09.07 09:32
qq_35728177
qq_35728177   Ds   Rxr 2017.09.07 10:17
Csdn user default icon
上传中...
上传图片
插入图片