matlab中的8位2d数组

时间:2011-11-09 12:10:52

标签: image matlab

我在保存数组中的数据方面遇到了一个小问题。我想在包含100行和100列的2d数组中以10001010 < - 8位的形式保存数据。我现在做的是

a = rand(100,100);
a = a * 127; // <<- this is done to make it 8 bits

为了确认我做了什么,我做了一个imshow来显示图像。

当a乘以127时,大多数灰度像素变为白色,但在乘法步骤之前,它显示出漂亮的灰度图像。

<= a = rand(100,100); {= 0}} a = a * 127之后; enter image description here

1 个答案:

答案 0 :(得分:1)

如果你想要8位表示,它实际上是0-> 255,因为图像强度是无符号的。 Matlab在使用imshow时检查图像是哪个类,如果它是双精度,则预期范围0-> 1。因此,您需要在相乘后将图像转换为uint8以使其正确显示。

a = rand(100,100);
a = a*255;
a = uint8(a);
imshow(a);