Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ルックアップ テーブル演算

ルックアップ テーブルの作成

バイナリ イメージ演算ではルックアップ テーブルを使用するのが最も簡単な場合があります。ルックアップ テーブルは列ベクトルであり、その中の各要素は近傍ピクセルの可能な組み合わせの 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のリファレンス ページを参照してください。