ガンマ補正(ルックアップテーブルの例)

シェアする

  • このエントリーをはてなブックマークに追加

ルックアップテーブルLookup Table【略LUT】)は、ある値の答えが必ず1つの値となる場合、あらかじめ答えを計算しておき、配列に格納しておくことで、毎回の計算をすることなく、 配列(テーブル)を参照することで効率的に処理を行う手法です。

画像処理では、コントラスト調整やガンマ補正などによく用いられます。

例えば、ガンマ補正の場合、ガンマ補正値をγ、補正前の輝度値をsrc
補正後の輝度値をdstとすると、補正式は

ガンマ補正式

となりますが、この計算を全ての画素に対して処理を行うのは非常に非効率です。
そこで、例えばLUTという配列に、ガンマ補正の計算結果を以下のように格納しておきます。

src 0 1 2 3 ・・・ 252 253 254 255
dst 0 16 23 28 ・・・ 253 254 254 255

ルックアップテーブル

あとは、各画素に対して、

dst = LUT[src]

という変換をすればよいだけなので、高速に処理を行うことができます。
こうする事でルックアップテーブルを用いない場合は、画素数分のガンマ補正計算をしないといけないのが、ルックアップテールを用いる事で、この例の場合では、たかだか256回の計算だけで済みます。

ガンマ補正例

  • ガンマ補正前
    ガンマ補正前

  • ルックアップテーブル

    ルックアップテーブル

  • ガンマ補正後

    ガンマ補正後

他にも二値化処理や、輝度値を0~255の範囲内に収めるための if 文の代わりなどにも応用できる場合があるので、処理を高速にしたい場合は、このルックアップテーブルが使えるかどうか?検討してみるのも良いと思います。

画像処理アルゴリズムへ戻る

関連記事

関連記事

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. […] 4/25 ガンマ補正(ルックアップテーブルの例) […]

  2. […] 4/25 ガンマ補正(ルックアップテーブルの例) […]