読者です 読者をやめる 読者になる 読者になる

画像の色空間をHSVへ変換、操作

cvtColorの使い方がcv2(OpenCV2.3)になってちょっと変わっていたのでメモ。

>>> import cv2
>>> import numpy
>>> src = cv2.imread('src.jpg', 1)
>>> dst = numpy.zeros(src.shape, dtype=numpy.uint8)
>>> dst = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)  #BGR→HSVへ変換
>>> dst[:,:,0]  #H
array([...
>>> dst[:,:,1]  #S
array([...
>>> dst[:,:,2]  #V
array([...
>>> dst[:,:,1] = 0  #彩度を0にしてみる
>>> dst = cv2.cvtColor(dst, cv2.COLOR_HSV2BGR)  #HSV→BGRへ戻す
>>> cv2.imshow('dst', dst)
>>> cv2.destroyWindow('dst')

cv2.cvtColorのコードがcv2.COLOR_*に。
以前のまま使いたい場合はcv2.cv.CV_*で。