Graphics | ![]() ![]() |
インデックス付きカラーシステム上でのトゥルーカラーのディザリング
概要
DithermapMode
をmanual
に設定すると現在のDithermap
を使用し、auto
に設定するとFigureに表示されているカラーに基づいて新しいDithermap
を作成します。
詳細
MATLABでは、Figureのカラーマップにインデックス付けされる値の代わりに、CData
をRGBの3要素として設定することによって、トゥルーカラーシステム(24ビット表示)を利用することができます。インデックスカラーシステムは、 Dithermap
プロパティに割り当てられたディザーマップ内の最も近いカラーに各カラーを写像することによってトゥルーカラーの設定を解釈します。MATLABはFloyd-Steinbergアルゴリズムを使って写像を実行します。
ディザーマップは、Figureのカラーマップ(この場合には使用しません)に置き換わるカラーマップです。デフォルトのディザーマップには、スペクトル全体からのカラーのサンプリングが含まれています。これによって、どのようなオブジェクトのカラーリングにおいても十分な品質が得られます。しかし、Figureに主に1カラーからなるオブジェクトが含まれている場合、同じカラーに集中したディザーマップのカラーの解像度は、さらによくなります。
自動ディザーモード
DithermapMode
を auto
に設定すると、MATLABはFigureのカラーに基づいて自動的にディザーマップを作成します。MATLABは、最小分散量子化アルゴリズムを使って適切なディザーマップを作成しますが、処理には、時間がかかります。また、MATLABはFigureを再度レンダリングするたびにディザーマップを作り直します。
余分なレンダリング時間を避けるためには、MATLABがディザーマップを作成した後で、DithermapMode
をmanual
にリセットしてください。するとMATLABは、DithermapMode
を再度auto
に設定するまで、作り直すことなく、このディザーマップを使用します。Figureで使用するカラーを変更しない限り、ディザーマップを作り直す必要はありません。
Dithermap
プロパティを変数に割り当て、それをMAT-ファイルとして保存することによって、ディザーマップを保存することができます。
set(gcf,'DithermapMode','auto')
MATLABが作成したディザーマップは、つぎのようにして保存することができます。
dmap = get(gcf,'Dithermap'); save DitherMaps dmap
ディザーマップのサイズ
最高のカラーの解像度を得るために、デフォルトのディザーマップはシステムが許すかぎりの大きさになっています。これは、特定の数のスロットがシステムカラー用に予約されているため、通常256カラー以下です。また、MATLABの固定色はディザーマップによって上書きされません。
ディザリングの効果
6ピクセルのグループ単位でカラーを写像するため、表示されるグラフィックスの解像度はディザリングにより低下します。たとえば、1ピクセルのカラーをオレンジとして定義したとしても、ディザーマップはこのカラーをもっていません。MATLABは、6ピクセルグループをまとめてオレンジカラーを近似するカラーの組み合わせをディザーマップから選択します。
![]() | アクティブでないFigureと共有のカラー | 描画法の選択 | ![]() |