OpenCV

画像処理 「OpenCV 4」RGBからHSVに変換、HSVからRGBに変換

RGBの画像を変換して、HSVの画像として保存してみます。

HSVモデル

HSVモデルは色相(Hue)、彩度(Saturation)、明度(Value)の三つの成分からなる色空間のことです。

環状のHSV色空間では、色相は色の種類(赤、青など)を、0 – 360の範囲で表します。0度/360度が赤(R:255, G:0, B:0)、120度が緑(R:0, G:255, B:0)、240度で青(R:0, G:0, B:255)を表します。

彩度は、色の鮮やかさで0 – 100 % の範囲で表します。100%が最も鮮やか、0%になると灰色になります。

明度は色の明るさを0 – 100 % の範囲で表します。100%が最も明るく、0%が最も暗く黒になります。

サンプルコード

cv2.imread(“image.png”) で画像を読み込むと、BGRとして読み込まれるため、変換は cv2.COLOR_BGR2HSV で行っている。Pillowで読み込む場合は、RGBで読み込まれるため、COLOR_RGB2HSV とする。

import cv2

img = cv2.imread("image.png")

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.imwrite("hsv.png", hsv)

bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
cv2.imwrite("bgr.png", bgr)