Image
のマトリックスがあるとしましょうuint16
。
基本的に、各ピクセルの範囲は0
から65535
です。
この画像をimshow(Image)
何レベルの灰色のMatlabで表示すると、レンダリングされますか?
標準255
レベル(したがって、暗黙的に画像をuint8に変換します)?
(カラーマップを変更できることはわかっていますが、グレーレベルの数だけを知りたいことに注意してください)
Image
のマトリックスがあるとしましょうuint16
。
基本的に、各ピクセルの範囲は0
から65535
です。
この画像をimshow(Image)
何レベルの灰色のMatlabで表示すると、レンダリングされますか?
標準255
レベル(したがって、暗黙的に画像をuint8に変換します)?
(カラーマップを変更できることはわかっていますが、グレーレベルの数だけを知りたいことに注意してください)
カラーマップのサイズは、Matlabが表示しようとしている色(この場合はグレーレベル)の数を示します。
numGrayLevels = size(get(gcf,'Colormap'),1)
ほとんどのモニターは8ビットのグレーしかサポートしていないことに注意してください。また、ディスプレイの品質とキャリブレーションによっては、それよりはるかに少ない値が表示される場合があります。
これはそれよりも複雑な答えになる可能性があります。現在、ほとんどのコンピューターは256階調のグレーしか表示できません。
MATLABは、それ以上のことはできません。ただし、疑似カラースキームを使用すると、MATLABでピクセルあたり16ビット全体を表現できる場合があります。その場合、カラースケールで選択した65535色以上が表示されます。
Matlabによって制限が適用されるとは思いません。RGBおよびHSVカラー値も2倍にすることができます。これにより、「ほぼ無限」の数のカラー(およびグレー)が得られます。
プロットウィンドウはJavaで実行されます。そこでは、色を4つのフロートで定義できます(「色」を参照)。ハードウェアが処理できるよりも多くの色を残します。
ヘルプの状態:
レンダリングで使用される実際の色は、特定の出力デバイスで使用可能な色空間を考慮して、最適な色を見つけるかどうかによって異なります。
したがって、最終的にはハードウェアに依存するようです。