【Python】グレースケール・HSV・L*a*b変換|OpenCVによるカラー画像処理

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ
  • Pythonによる画像処理に興味がある。
  • カラー画像をモノクロ・HSV・L*a*b空間に変換する方法が知りたい。
目次

OpenCVとは

OpenCV(Open Source Computer Vision Library)とは、画像処理やコンピュータビジョンの分野で広く活用されているオープンソースライブラリです。画像データの数値処理に強いのが特徴であり、高度な統計アルゴリズムも多数含まれていることから、近年機械学習の分野でも広く利用されています。

本記事では、画像のカラー変換処理について解説します。具体的に以下を言及します。

  • モノクロ(グレースケール)
  • HSV
  • L*a*b
  • RGB2BGR

【Python】OpenCVによる画像変換|モノクロ(グレースケール)

PythonのOpenCVライブラリを用いてグレースケール画像に変換する方法を解説します。

画像指定部分にグレースケール化したい画像のディレクトリを指定し、以下を実行してみましょう。

import cv2

# 画像指定
img = cv2.imread("image_data.jpg")

# グレースケールに変更
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 画像情報
print("(高さ, 幅, 色)="+str(gray_img.shape))

# 画像出力
cv2.imshow("img",gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

画像のグレースケール化はcv2.cvtColor(img,cv2.COLOR_BGR2GRAY)をもとに実現できます。また、別解として以下のコードでもグレースケール化が可能です。

import cv2

# 画像指定|第二引数にゼロを付与するとグレースケール可
img = cv2.imread("image_data.jpg", 0)

# 画像出力
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

【Python】OpenCVによる画像変換|HSV

PythonのOpenCVライブラリを用いてHSV空間に変換する方法を解説します。以下を実行してみましょう。

import cv2

# 画像指定
img = cv2.imread("image_data.jpg")

#hsv変換
hsv_img  = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

# 画像情報
print("(高さ, 幅, 色)="+str(hsv_img.shape))

# 画像出力
cv2.imshow("img",hsv_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

【Python】OpenCVによる画像変換|L*a*b*

PythonのOpenCVライブラリを用いてL*a*b*空間に変換する方法を解説します。以下を実行してみましょう。

import cv2

# 画像指定
img = cv2.imread("image_data.jpg")

# 画像変換
img  = cv2.cvtColor(img,cv2.COLOR_BGR2LAB)

# 画像情報
print("(高さ, 幅, 色)="+str(img.shape))

# 画像出力
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

【Python】OpenCVによる画像変換|RGB→BGR

PythonのOpenCVライブラリを用いて色チャネルを変換(RGB→BGR)したい場合、次のように記述します。

import cv2

# 画像指定
img = cv2.imread("image_data.jpg")

# 変換
img  = cv2.cvtColor(img,cv2.COLOR_RGB2BGR)

# 画像情報
print("(高さ, 幅, 色)="+str(img.shape))

# 画像出力
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

【参考】Python・OpenCVを用いた画像処理

当サイトでは、PythonのOpenCVライブラリを用いた画像処理ノウハウを多数公開しています。

用途【Python×OpenCV】記事名
画像変換画像のリサイズ・拡大・縮小
画像変換画像の回転・反転・平行移動|アフィン変換
画像変換画像の明るさ調節|ガンマ補正
画像変換グレースケール・HSV・L*a*b|色空間の変換
画像変換モノクロ(白黒)画像変換|2値化処理
画像変換ヒストグラムの描画・ヒストグラム均一化処理
画像変換画像上にテキスト・図形(直線・長方形・円)を描画
画像変換画像の透視変換・遠近法
画像変換画像のノイズ除去・平滑化
画像変換画像の畳み込み(空間フィルタリング)
特徴抽出エッジの検出方法

画像認識や物体検出を学ぶ上でおすすめの教材はこちらをご参考ください。

最後に

この記事が気に入ったら
フォローしてね!

目次