【Python/OpenCV】画像のヒストグラム平均化

Python版OpenCV(cv2.equalizeHist)で画像のヒストグラム平均化する方法をソースコード付きで解説します。

【はじめに】ヒストグラム平均化とは

ヒストグラムが全体的に平均化されるよう画像の画素値を変換してやると、人が見やすい画像なります。
これをヒストグラム平均化(平坦化)といいます。

ヒストグラム平均化の原理はこちら
詳細 ヒストグラム平均化の原理・計算式

今回は、Python言語を用いて画像のヒストグラムを平均化してみました。
ヒストグラムの計算部分は以下の2種類の方法を実装してみました。

方法①・・・NumPyで実装
方法②・・・OpenCVの「cv2.equalizeHist」を使用

書式

dst = cv2.equalizeHist(gray)
パラメータ名 説明
src 入力画像(1チャンネル)
dst ヒストグラム平均化された画像

【サンプルコード】Python3 + OpenCV

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

方法①


方法②


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

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

関連記事
1 PythonでOpenCV入門 サンプル集
2 【Python】画像処理プログラミング入門
3 【画像処理入門】アルゴリズム&プログラミング

コメント

  1. 匿名 より:

    入力画像(右)、出力画像(右)で両方右になっています。

  2. 匿名2 より:

    「■入力画像(右)、出力画像(左)」で、左右逆になっています。

    左側の明るすぎる画像が入力で、右側の見やすくなった画像が出力かと思います。