MATLAB矩阵保存为图像问题,为什么保存图像为空白? RGB值为255。

有如下的矩阵数据:
img =
[ 57,67,45,34,23,56,87,53,75,54;
34,43,54,23,16,34,65,76,53,45;
57,67,45,34,23,56,87,53,75,54;
]
imshow(img) 是有图案的,然后我 imwrite(img , './temp/~test.bmp'), 保存的图像为白色的,即结果如下。
[文件头][信息头][调色板][255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; ]
请问我需要怎么保存这个图像? 我该怎么做?

保存图像为空白,是由于数值超范围了。
保存图像原理:
MATLAB矩阵保存的是二进制的整形,数据范围在0-10之间,做处理
A = A/10*255;
A = uint8(A);
然后再存储,就能最大地利用0-255的范围了。
本题应为:
[文件头][信息头][调色板][255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; ]
img=uint8(img)(加上这句,即可)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-27
加一句img=uint8(img)再保存试试本回答被提问者采纳