Python OpenCVで一定以下の色相値を統一する(ソースコードとサンプル画像有)
2023年3月26日
実行環境
Python:3.9.7
OpenCV:4.5.3
ソースコードに関して
HSV変換後の画像で一定以下の色相を同じ値を統一するものです。
import cv2
import numpy as np
#画像の読み込み 第1引数:ファイル指定 第2引数:以下の読み込み方法を指定
#cv2.IMREAD_COLOR (引数:1。カラーのまま読み込み。デフォルト値。)
img = cv2.imread("./Gradation.png",cv2.IMREAD_COLOR)
#BGR→HSV変換
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV_FULL)
hsv_conv = np.copy(hsv)
#色相127未満を色相127へ変換
hsv_conv[:, :, 0] = np.where(hsv[:, :, 0]<127,127,hsv[:, :, 0])
#HSV→BGR変換
bgr = cv2.cvtColor(hsv_conv, cv2.COLOR_HSV2BGR_FULL)
#変換前の画像を描画
cv2.imshow('Base',img)
#変換後の画像を描画
cv2.imshow('Change',bgr)
cv2.waitKey(0)
cv2.destroyAllWindows()
実行結果
・ウィンドウ名「Base」に変換前の画像が表示されます。
・ウィンドウ名「Change」に変換後の画像が表示されます。
・任意のキーを入力することで終了します。
補足
HSVの配列構造に関して、以下で解説しています。
もし、よろしければ一読お願いします。
OpenCVでHSV変換した際のhsv[:,:,0]~hsv[:,:,2](色空間)に関して