我有一组介于0和1之间的值。将这些值置于0和255之间后,我想将它们保存为pgm格式的灰度图像。问题是,当我将其保存为图像,当我读到像我得到的值从值0和255Matlab将矩阵保存为具有不同值的图像
之间。在此之前的矩阵不同的是一个简单的例子:
>> a=[0.5,1,0.3]
a =
0.5000 1.0000 0.3000
>> b=single(floor(255 * a))
%these are the values I want in the image
b =
127 255 76
imwrite(b, 'test.pgm');
% i don't want these values!!!
c=imread('test.pgm')
c =
255 255 255
发生了什么事?为什么matlab不保存我的值?这是一个转换问题吗?
感谢您提供此信息。我知道这一点,但是当我通过将值乘以255并将其与matlab缩放比较将[0,255]中缩放的值保存在文件中时,这些值之间存在一些差异。发生这种情况是因为我使用floor()来保存值,Matlab使用ceil()。也谢谢你! – mad
@mad Gosh!这是你的电话。更新我的编辑。 – jkshah