Main Content

dither

ディザリングによって見かけのカラー解像度を上げてイメージを変換

説明

X = dither(RGB,map) は、カラーマップ map の色をディザリングすることで、RGB イメージのインデックス付きイメージ近似を作成します。

X = dither(RGB,map,Qm,Qe) は、逆カラーマップのそれぞれの色の軸に沿って使用する量子化ビットの数 Qm と、色空間の誤差計算に使用する量子化ビットの数 Qe も指定します。

BW = dither(I) は、ディザリングによって、グレースケール イメージ I をバイナリ (モノクロ) イメージ BW に変換します。

すべて折りたたむ

corn.tif ファイルから MATLAB® ワークスペースにグレースケール イメージを読み取ります。イメージのグレースケール バージョンはファイル内の 3 番目のイメージです。

corn_gray = imread('corn.tif',3);

imshow を使用してグレースケール イメージを表示します。

imshow(corn_gray)

Figure contains an axes object. The axes object contains an object of type image.

関数 dither を使用して、イメージをバイナリに変換します。

corn_bw = dither(corn_gray);

バイナリ イメージを表示します。バイナリ イメージのピクセルは 0 または 1 の値のみをもちますが、ディザリングによりイメージはグレーの色調をもつように見えます。

imshow(corn_bw)

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

RGB イメージ。m×n×3 の非負の数の配列として指定します。データ型 double のイメージを指定する場合、値は [0, 1] の範囲でなければなりません。

データ型: single | double | uint8 | uint16

入力カラーマップ。範囲 [0, 1] の値をもつ c 行 3 列の行列として指定します。map の各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する RGB 3 成分です。カラーマップは最大で 65,536 色をもちます。

データ型: double

逆カラーマップのそれぞれの色軸に沿った量子化ビット。正の整数として指定します。QeQm より小さい場合、ディザリングは実行できず、関数 dither はディザリングされていないインデックス付きイメージを X で返します。

データ型: double

色空間の誤差計算用の量子化ビット。正の整数として指定します。QeQm より小さい場合、ディザリングは実行できず、関数 dither はディザリングされていないインデックス付きイメージを X で返します。

データ型: double

グレースケール イメージ。m 行 n 列の非負の数の行列として指定します。データ型 double のイメージを指定する場合、値は [0, 1] の範囲でなければなりません。

データ型: single | double | int16 | uint8 | uint16

出力引数

すべて折りたたむ

インデックス付きイメージ。m 行 n 列の非負の整数の行列として返されます。map の長さが 256 以下の場合、出力イメージのクラスは uint8 です。そうでない場合、出力イメージは、クラス uint16 です。出力配列 X の値 0 はカラーマップの最初の色に対応します。

メモ

イメージ X の中の値は、カラーマップ map の中の値に対応します。そして、フィルター処理のような数学的な処理に使用してはなりません。

データ型: uint8 | uint16

バイナリ イメージ。m 行 n 列の logical 行列として返されます。

データ型: logical

アルゴリズム

dither は、Floyd-Steinberg の誤差拡散ディザリング アルゴリズム[1]を適用することで、イメージの見かけのカラー解像度を高めます。

参照

[1] Floyd, R. W., and L. Steinberg, "An Adaptive Algorithm for Spatial Gray Scale," International Symposium Digest of Technical Papers, Society for Information Displays, 1975, p. 36.

[2] Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 469–476.

バージョン履歴

R2006a より前に導入

参考

|

トピック