我在保存数组中的数据方面遇到了一个小问题。我想在包含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之后;答案 0 :(得分:1)
如果你想要8位表示,它实际上是0-> 255,因为图像强度是无符号的。 Matlab在使用imshow时检查图像是哪个类,如果它是双精度,则预期范围0-> 1。因此,您需要在相乘后将图像转换为uint8以使其正确显示。
a = rand(100,100);
a = a*255;
a = uint8(a);
imshow(a);