我有一个双倍的图像,我想用 unsigned int 16 位显示它,所以我这样做:
I = im2uint16(I);
figure;imshow(I);title('Image being saved')
这表明了这一点(带有正常的噪音):
现在我想用位深度为 16 位的 .png 来写这个图像。我愿意:
imwrite(I,'image.png','BitDepth',16);
现在用 Photoshop CS5 或 Windows Photo Viwer 打开的图像看起来像这样:(噪音神奇地消失了):
有人可以解释这种奇怪的行为吗?
如何重现此错误
C:\test\
在我在这里使用的图像中下载:
现在运行这个脚本:
I = im2double(imread('C:\test\test_matlab.tif'));
% Add gaussian noise with variance = 0.0012
I = imnoise(I,'gaussian',0,0.0012);
figure,imshow(I);
imwrite(I,'C:\test\withNoise.tif');
并将matlab中的数字与保存的文件进行比较