【Python/OpenCV】ガンマ補正で明るさ調整

この記事では、Python版OpenCVで画像のガンマ補正で明るさを調整する方法をソースコード付きで解説します。

ガンマ補正

ガンマ補正は、画像のコントラストを調節し、視認しやすくするのによく使われています。

関連記事
原理の解説はこちら 【画像処理】ガンマ補正の原理・計算式
OpenCVの導入方法 【Python3】OpenCV3をインストール
Python版OpenCVまとめ Python版OpenCV入門 サンプル集
Pythonで画像処理まとめ 【Python】画像処理プログラミング入門
画像処理の原理まとめ 【画像処理入門】アルゴリズム&プログラミング

今回は、Python言語+OpenCV+NumPyを用いてガンマ補正を実装してみました。

ソースコード(Python3+OpenCV3)

サンプルプログラムのソースコードです。

#-*- coding:utf-8 -*-
import cv2
import numpy as np


def main():

    # 入力画像を読み込み
    img = cv2.imread("input.jpg")

    # グレースケール変換
    gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

    # 線形濃度変換
    gamma = 2.0
    
    # 画素値の最大値
    imax = gray.max() 
    
    # ガンマ補正
    gray = imax * (gray / imax)**(1/gamma)

    # 結果の出力
    cv2.imwrite("output.jpg", gray)


if __name__ == "__main__":
    main()

実行結果

サンプルプログラムの実行結果です。

■入力画像(右)、出力画像(右)

シェア&フォローお願いします!