我有一组介于 0 和 1 之间的值。将这些值放在 0 和 255 之间后,我想将它们保存为 pgm 格式的灰度图像。问题在于,在我将其保存为图像后,我在读取图像时得到的值与之前的矩阵不同,其值在 0 到 255 之间。
这是一个简单的例子:
>> 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 不保存我的值?这是转换问题吗?