Python OpenCV3でガンマ変換 (輝度、色彩の調整)

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

ガンマ変換(Gamma Conversion)

[amazonjs asin=”4061538225″ locale=”JP” title=”OpenCVによる画像処理入門 (KS情報科学専門書)”]

 

前提

ディレクトリ構成などはこことかこことか。

&nbsp

元画像

この画像(sora2.jpg)を使う。
以前の例だとsource/imageディレクトリ配下に設置する。

sora

 

ガンマ変換

ガンマ変換は以下の通り。

f(x) = 255 \times ( \frac{x}{255})^(\frac{1}{\gamma})

 

sourceディレクトリ配下にgamma.pyを作成する。
事前にルックアップテーブルを作成し、OpenCV3のLUTメソッドの引数でルックアップテーブルを指定し、ガンマ変換を行う。

[python title=”gamma.pyの内容”] # -*- coding: utf-8 -*-

import cv2
import numpy as np

if __name__ == ‘__main__’:

# ガンマ定数の定義
gamma = 2.0

# ルックアップテーブルの生成
"""
array([[0],
[0],
[0],
[0],
[0],
[0],
[0],
・・・・・・・・
[0], dtype=’uint8′)
のようなリストが生成される。
"""
look_up_table = np.ones((256, 1), dtype = ‘uint8’ ) * 0

for i in range(256):

look_up_table[i][0] = 255 * pow(float(i) / 255, 1.0 / gamma)

# 画像の読み込み
img_src = cv2.imread("./image/sora2.jpg", 1)

# ガンマ変換後の出力
img_gamma = cv2.LUT(img_src, look_up_table)

# 表示
cv2.imshow("Show HSV Image", img_gamma)
cv2.waitKey(0)
cv2.destroyAllWindows()

[/python]

実行してみる。

[shell] python gamma.py
[/shell]

スクリーンショット 2015-06-22 22.43.47

元画像で暗くなっている部分がくっきり見える。

 

Related posts

コメントを残す