2011-11-09 26 views
-2

配列にデータを保存するのに少し問題があります。私は10010行と100列を含む2次元配列の8ビット10001010 <の形式でデータを保存します。私が今やっていることは、私は画像を表示する関数imshowをやったやっていることを確認するにはmatlabの8ビット2d配列

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

です。

aに127を乗算すると、グレースケールピクセルのほとんどが白くなりますが、乗算ステップの前にはグレースケール画像が見えます。

a = rand(100,100); a = a * 127の後のenter image description here; enter image description here

+0

整数値の配列を0-> 255の範囲で指定するといいですか? –

答えて

1

8ビット表現が必要な場合は、イメージの強度が符号なしなので、実際には0〜255です。 imshowを使用しているときにMatlabが画像のクラスをチェックします.2倍の場合は範囲​​0〜1が必要です。したがって、イメージを適切に表示するために掛けた後、イメージをuint8にキャストする必要があります。

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

は8ビットのグレースケール画像ですか? – user574183

+1

負の強さではポイントがありませんので、符号なしです。しかし、あなたは私が推測したいと思う方法で表現することができます。これはimshowがイメージを描く方法と、私があなたが探していたと思われるものです。 – Henrik