2017-01-28 1 views
0

グレースケール画像には256の可能な値があります。しかし、私がこれを試したときにmatlabで: -カラーマップのサイズ(グレー)

>> a=colormap(gray); 
>> whos a 
    Name  Size   Bytes Class  Attributes 

    a   64x3    1536 double 

これは、カラーマップ(灰色)が64値しかないことを示しています。なぜこれはそうですか?

答えて

2

カラーマップのデフォルトの長さは64です。
a=colormap(gray(256));を使用するか、256値の場合はa=gray(256);を使用すると便利です。

一般に、colormapはグレーレベルの特別な処理をしています。
colormapは、RGBトリプレット(グレースケールトリプレットはR = G = Bを意味する)に「インデックス」をマップする「ルックアップテーブル」の一種です。
すべての可能なグレーレベルで256の値で十分ですが、すべてのRGBレベル(カラーチャネルあたりのバイトを想定)をカバーするには256^3 = 16777216の値が必要です。

デフォルトの64の値は、256グレイレベルのうち64サンプルを適用します(サンプル間の量子化「ギャップ」があります)。

例:

gray(2)
結果:2つのグレーレベル(0と1):
0 0 0(黒)
1 1 1(白)

gray(4)
結果:4グレーレベル:
0 0 0(黒色)
0.3333 0.3333 0.3333(暗灰色)
0.6667 0.6667 0.6667(ライトグレー)
1.0000 1.0000 1.0000(白)
あなたが見ることができるように、最小値は0、最大値は1であり、その間のレベルが1/3と2/3です。

同義語gray(64) ...

関連する問題