Python OpenCV3でコントラストを強調(濃くする)

Posted on


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

前提

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

&nbsp

元画像

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

akai_tsuki

 

ルックアップテーブル

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

    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, min_table):

        look_up_table[i] = 0

    for i in range(min_table, max_table):

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

    for i in range(max_table, 255):

        look_up_table[i] = 255

 

コントラストを強調

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

# -*- 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, min_table):

        look_up_table[i] = 0

    for i in range(min_table, max_table):

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

    for i in range(max_table, 255):

        look_up_table[i] = 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 high_contrast.py

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

濃くなっている。

 

Tags: , , , , , ,


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">