このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ルックアップ テーブル演算
ルックアップ テーブルの作成
バイナリ イメージ演算ではルックアップ テーブルを使用するのが最も簡単な場合があります。ルックアップ テーブルは列ベクトルであり、その中の各要素は近傍ピクセルの可能な組み合わせの 1 つに対応した値を表します。さまざまな演算で使用するルックアップ テーブルを作成するには、関数makelut
を使用します。関数makelut
は 2 行 2 列と 3 行 3 列の近傍に対するルックアップ テーブルを作成します。次の図はこれらのタイプの近傍を示します。x は近傍ピクセルを表し、その中心のピクセルは丸で囲まれています。
2行2列の近傍では,近傍ピクセルの可能な組み合わせが16あります。したがって,この演算のルックアップ テーブルは 16 要素のベクトルになります。3 行 3 列の近傍では、組み合わせが 512 あり、ルックアップ テーブルは 512 要素のベクトルになります。
メモ:
関数makelut
と関数applylut
がサポートするのは 2 行 2 列と 3 行 3 列の近傍のみです。3 行 3 列の近傍より大きなルックアップ テーブルは実用的ではありません。たとえば、4 行 4 列の近傍では 65,536 のエントリができます。
ルックアップ テーブルの使用
作成されたルックアップ テーブルは、関数applylut
を使う演算で使用できます。
次の例では、テキストを含むイメージを変更するためにルックアップ テーブル演算を使用しています。この例では、3 行 3 列の近傍で 3 個以上のピクセルが 1 のとき 1 を返し、それ以外のときは0
を返す無名関数を作成します。次に関数makelut
が呼び出されて、この情報が最初の引数として渡され、2 番目の引数で 3 行 3 列のルックアップ テーブルが指定されます。
f = @(x) sum(x(:)) >= 3; lut = makelut(f,3);
lut
に返される値は 1 と 0 からなる 512 要素ベクトルです。各要素の値は 512 の可能な組み合わせのそれぞれに対する関数からの出力です。
次に関数applylut
を使用して演算を行います。
BW1 = imread('text.png'); BW2 = applylut(BW1,lut); imshow(BW1) figure, imshow(BW2)
ルックアップ テーブル演算を適用する前と後のイメージ
applylut
がイメージ内のピクセルの組み合わせをルックアップ テーブルのエントリにどのようにマッピングするかの詳細については、applylut
のリファレンス ページを参照してください。