#author("2025-04-24T12:27:26+09:00","","") #author("2025-04-24T12:27:35+09:00","","") [[log/20250422/佐藤綺羅]] *画像の色変換 [#be8eb88a] **cv2.cvtColor関数 [#d6791144] 色にはRGBやHSVなどの複数の表現手法(色空間)がある。~ openCVではcv2.cvtColorという関数を用いて、画像の色空間を変換することができる。~ cv2.cvtColor(入力画像, code, dst, dstCn) 引数は以下の通り。 |入力画像(必須)|入力画像| |code(必須)|色空間変換コード| |dst(任意)|出力画像。指定された場合、結果がこの変数に格納される。指定されない場合は、新しい配列が作成されて結果が格納され戻り値として取得できる。| |dstCn(任意)|出力画像のチャンネル数| codeには以下のようなものがある。 |cv2.COLOR_BGR2RGB|BGRからRGBへチャンネルの並びを変換する。| |cv2.COLOR_BGR2GRAY|BGRからグレースケールに変換する。| |cv2.COLOR_BGR2XYZ|BGRからXYZに色空間を変換する。| |cv2.COLOR_BGR2HSV|BGRからHSVに色空間を変換する。色相(H)のレンジは8bit画像の場合、0〜180。| |cv2.COLOR_BGR2Lab|BGRからLab*に色空間を変換する。| |cv2.COLOR_BGR2Luv|BGRからLuv*に色空間を変換する。| |cv2.COLOR_BGR2HLS|BGRからHLSに色空間を変換する。色相(H)のレンジは8bit画像の場合、0〜180。| |cv2.COLOR_HSV2BGR|HSVからBGRに色空間を変換する。色相(H)のレンジは8bit画像の場合、0〜180。| |cv2.COLOR_HLS2BGR|HLSからBGRに色空間を変換する。色相(H)のレンジは8bit画像の場合、0〜180。| |cv2.COLOR_BGR2YUV|BGRからYUVに色空間を変換する。| これらはあくまで一例であり、実際にはより多数の色空間変換コードが存在する。 ***グレー化 [#b3cc6523] 以下に画像のグレー化を行うプログラムの実行例を示す。 取り込んだ画像~ &attachref();~ &attachref(neko.jpeg);~ コード #code(python){{ #!/usr/bin/python import cv2 img = cv2.imread("neko.jpeg") gimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow("neko", gimg) cv2.waitKey(0) }} 実行結果~ &attachref(neko_gray.png);~ なお、5行目の記述を img = cv.2imread("neko.jpeg", 0) とすることでもグレー画像の取り込みは可能だが、取り込んだ時点でグレー画像しか扱えなくなる。~ cvtColor関数を用いた場合、カラー画像の情報が格納された変数imgと、グレー画像の情報が格納された変数gimgの2つが扱えるようになるため、こちらの方が無難である。