#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つが扱えるようになるため、こちらの方が無難である。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS