【Python/OpenCV】グレースケール変換(cv2.cvtColor)

スポンサーリンク

この記事では、PythonとOpenCVを用いて画像をグレースケール変換する方法をソースコード付きで解説します。

スポンサーリンク

グレースケール変換

RGB画像をグレースケール画像に変換する場合は以下の式を利用します。

(1) \begin{eqnarray*} Gray = Red\times 0.3 + Green\times 0.59 + Blue\times 0.11 \end{eqnarray*}

Red(赤)、Green(緑)、Blue(青)はRGBカラー画像の画素値です。
Grayはグレースケール画像の画素値です。

【参考】【画像処理】RGBからグレースケールへの変換

また、OpenCVライブラリでは、cv2.cvtColorメソッドでRGBの画像をグレースケール変換できます。

書式

gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
パラメータ名 説明
img 入力画像(RGB)
gray 出力画像(グレースケール)

今回は、「変換アルゴリズムを自前で実装する方法」と「cvtColorメソッドを利用する方法」を両方試してみました。

ソースコード(Python3)

サンプルプログラムのソースコードです。

※動作には、OpenCVとNumPyライブラリが必要です。
■ライブラリの導入方法・Pythonの基礎はこちら。
【Python3】OpenCV3をインストール(Windows編)
NumPyのインストール (Windows、Linux、Ubuntu)
Python入門 サンプル集

実行結果

サンプルプログラムの実行結果です。

■左から入力画像(input.jpg)、出力画像(gray1.jpg or gray2.jpg)

お借りした画像:プロ生ちゃん(暮井 慧)

【おすすめ記事】
PythonでOpenCV入門 サンプル集
【Python】画像処理プログラミング入門
【画像処理入門】アルゴリズム&プログラミング

スポンサーリンク

シェア&フォローお願いします!