独学でプログラミングとかやってみる 〜ITとかの勉強レポート〜

ボクが勉強したプログラミングやIT関連の情報を記事にしていきます。機械学習や深層学習なども取り扱います。

OpenCVの基本操作の一部

OpenCVPythonで操作する基本的な話をメモ的に記載します。

ヒストグラム

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("画像データのPath")

#カラー画像の場合
color_list = ["blue", "green", "red"]
for i,j in enumerate(color_list):
    hist = cv2.calcHist([img], [i], None, [256], [0, 256])
    plt.plot(hist, color = j)

#グレースケール画像の場合
img_gray = cv2.imread("画像データのPath", 0)
hist2 = cv2.calcHist([img_gray], [0], None, [256], [0,256])
plt.plot(hist2)

#ヒストグラムの均一化
img_eq = cv2.equalizeHist(img)
hist_e = cv2.calcHist([img_eq], [0], None, [256], [0, 256])
plt.plot(hist_e)

γ変換

画面を明るくしたり暗くしたりする処理

import numpy as np

#明るくするにはgamma > 1
gamma = 1.5
gamma_cvt = np.zeros((256, 1), dtype=np.uint8)
for i in range(256):
    gamma_cvt[i][0] = 255 * (float(i)/255) ** (1.0/gamma)
    
img_gamma = cv2.LUT(img, gamma_cvt)

#暗くするにはgamma < 1
gamma = 0.4
gamma_cvt = np.zeros((256, 1), dtype=np.uint8)
for i in range(256):
    gamma_cvt[i][0] = 255 * (float(i)/255) ** (1.0/gamma)
    
img_gamma = cv2.LUT(img, gamma_cvt)

以上、簡単な操作の一部でした。