Python OpenCV3でコントラストを低減(薄くする)

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

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

前提

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

 

元画像

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

akai_tsuki

 

ルックアップテーブル

ルックアップテーブルは、RGBそれぞれに関数を作成してみる。
以下のような関数を3つ作成した。

[python title=”ルックアップテーブルの作成”] min_table = 100
max_table = 192
diff_table = max_table – min_table
look_up_table = np.arange(256, dtype = ‘uint8’ )

for i in range(0, 255):

look_up_table[i] = min_table + i * (diff_table) / 255

[/python]

 

コントラストを低減

sourceディレクトリ配下にlow_contrast.pyを作成する。

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

import cv2
import numpy as np

if __name__ == ‘__main__’:

# ルックアップテーブルの生成
min_table = 100
max_table = 192
diff_table = max_table – min_table
look_up_table = np.arange(256, dtype = ‘uint8’ )

for i in range(0, 255):

look_up_table[i] = min_table + i * (diff_table) / 255

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

# コントラストを低減
img_contrast = cv2.LUT(img_src, look_up_table)

# 表示
cv2.imshow("Show LOW CONTRAST Image", img_contrast)
cv2.waitKey(0)
cv2.destroyAllWindows()

[/python]

実行してみる。

[shell] python low_contrast.py
[/shell]

スクリーンショット 2015-07-01 21.58.21

薄くなっている。ヒストグラムを見ると、全体的に右に移動しているのがわかる。

スクリーンショット 2015-06-26 19.07.33

スクリーンショット 2015-07-01 22.05.56

 

Related posts

コメントを残す