\

PythonとOpenCVを使用して画像の色空間を変換する方法について説明します。それぞれのバージョンはPython 3.10.4、OpenCV 4.5.5になります。

OpenCVで色空間の変換処理

OpenCVではcvtColorという色空間の変換処理を行う関数が実装されています。引数に変換前後の色空間を指定することで、様々な色空間への変換を行うことができます。

cvt_img = cv2.cvtColor(src_img, cv2.COLOR_BGR2GRAY)

上記のコードは、BGR色空間からグレースケールに変換する例です。

色空間変換コードの種類

OpenCVでは様々な色空間への変換ができるように200以上の変換コードが実装されています。以下に一部の変換コードとそれに対応する逆変換コードを記載します。

  • BGRをグレースケールに変換: cv.COLOR_BGR2GRAY, cv.COLOR_GRAY2BGR
  • BGRにアルファチャンネルを追加: cv.COLOR_BGR2BGRA, cv.COLOR_BGRA2BGR
  • BGRをHSVに変換: cv.COLOR_BGR2HSV, cv.COLOR_HSV2BGR
  • BGRをLabに変換: cv.COLOR_BGR2Lab, cv.COLOR_Lab2BGR
  • BGRをLuvに変換: cv.COLOR_BGR2Luv, cv.COLOR_Luv2BGR
  • BGRをHLSに変換: cv.COLOR_BGR2HLS, cv.COLOR_HLS2BGR
  • BGRをYUVに変換: cv.COLOR_BGR2YUV, cv.COLOR_YUV2BGR
  • BGRをXYZに変換: cv.COLOR_BGR2XYZ, cv.COLOR_XYZ2BGR
  • BGRをYCrCbに変換: cv.COLOR_BGR2YCrCb, cv.COLOR_YCrCb2BGR

実装例

以下に実際の実装例を示します。

import cv2

def main():
    src_img = cv2.imread('input.png')
    if src_img is None:
        raise Exception('Image not found')

    cvt_img = cv2.cvtColor(src_img, cv2.COLOR_BGR2GRAY)
    cv2.imwrite('output.png', cvt_img)

if __name__ == "__main__":
    main()

このコードは、入力画像をグレースケールに変換し、出力画像として保存します。

以上がPythonとOpenCVを使用した色空間の変換についての基本的な説明となります。色空間の変換は画像処理において重要なステップであり、様々な応用が可能です。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です