OpenCVでHSV変換した際のhsv[:,:,0]~hsv[:,:,2](色空間)に関して
はじめに
PythonのOpenCVでHSV変換した際に気になったことをまとめます。 HSVは、色を「色相(Hue)」「彩度(Saturation)」「明度(Value)」の3要素で表現する方式です。 そのため、チャンネル数は「3」で「高さ、幅、0~2(チャンネル数)」の三次元配列で表されます。 サンプルは以下です。
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV_FULL)
h = hsv[:, :, 0]
s = hsv[:, :, 1]
v = hsv[:, :, 2]
「:」なんぞ?
「:」は軸(axis)方向の全範囲を示します。 そのため、以下は「色相(Hue)」の高さ及び幅の全範囲を指定しています。
hsv[:, :, 0]
色相って「0~360」では?
色相って円グラフだし、0~360じゃないの?と思って調べてみました。 下記URLに「H range 0..255」と記載がされているため、0~255で表現される模様です。(たぶん) https://docs.opencv.org/4.5.3/d8/d01/group__imgproc__color__conversions.html Python: cv.COLOR_BGR2HSV_FULL 「Python: cv.COLOR_BGR2HSV」には「H range 0..180」とあり、 0~180で表現されるみたいなので、そちらの方が使いやすいかもです。