私はdoubleの画像を持っていますが、unsigned int 16ビットで表示したいので、次のようにします。
I = im2uint16(I);
figure;imshow(I);title('Image being saved')
これはこれを示しています(通常のノイズを伴う):
次に、この画像を.pngでビット深度16ビットで書き込みます。そうです:
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の図と保存されたファイルを比較します