PythonでOpenCVを用いたcvtColorの利用方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでOpenCVを用いたcvtColorの利用方法について現役エンジニアが解説しています。OpenCVは画像処理に特化したライブラリで、ctvColorメソッドは、色空間を変換することが出来ます。OpenCVのctvColorメソッドを使って、カラー画像をグレースケール画像に変換します。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

PythonでOpenCVを用いたcvtColorの利用方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。これが使えるようになると、画像の色の表し方を使いたい表示に変換することができます。ぜひ参考にしてみてください。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでOpenCVを用いたcvtColorの利用方法について詳しく説明していくね!

大石ゆかり

お願いします!

この記事では、Pythonの画像処理ライブラリであるOpenCVライブラリに組み込まれているcvtColor()関数の扱い方を説明します。

通常の画像処理や、機械学習でも役に立つことのある関数なので一度学んでおくと良いでしょう。

cvtColor()とは?

cvtColor()関数は、画像の色を変換するものです。

みなさんもご存知のようにコンピュータで表示される通常の画像はR(赤)G(緑)B(青)三色の情報を持っています。しかしながら、全てが同じような色を表すとは限りません。

例えば、そもそもRGBの順番が違ったり、RGBではない別の表現の仕方を行なっている場合もあり、ます。さらに、基準となる色はコンピュータやソフト、プログラムによって異なる場合があります。

Pythonでは、このようなときにcvtColor()を使うことで、画像の色の表し方を使いたい表示に変換することができます。専門的な用語を使うと、cvtColor()関数は、色空間を変換する場合に用いられる関数です。

他にも、カラー画像から白黒画像を生成したい場合にも使われるので非常に便利な関数でもあります。

cvtColor()の使い方

cvtColor()関数を使うためには、まず、OpenCVライブラリをインストールする必要があります。pipを使っている方は、

pip install opencv-python

を実行してください。

anacondaなど他の方法でパッケージを管理している場合は、そちらの方法でインストールしてください。あとは、PythonのプログラムでOpenCVをインポートして、関数を呼び出すだけです。cvtColor()関数の具体的な使い方は簡単です。基本的には、

cvtColor(画像ファイル, 変換の指定)

とすれば1行で画像の変換を行うことができます。変換の指定にはいくつかの定められたパラメータがありますが、通常のRGB画像からグレースケールの画像を作りたいときには、

cv2.COLOR_BGR2GRAY

という定数をつかって、

cvtColor(画像ファイル,cv2.COLOR_BGR2GRAY)

のように書くことで、グレースケールの画像を生成することができます。

[PR] Pythonで挫折しない学習方法を動画で公開中

cvtColor()を利用してRGB画像をグレースケール変換してみよう

では、実際にカラー画像からグレースケールの画像を作ってみましょう。適当なカラー画像を用意してください。今回例として使うのはこの画像です。(プログラムでは、’lenna.bmp’というファイル名で扱っています。)

Pythonでopencvを使ってRGB画像をグレースケールへ変換する前の画像

コマンドラインでpythonを対話型で開き、以下を実行してください。

>>> import cv2  #OpenCVの読み込み
>>> img = cv2.imread('lenna.bmp')  #画像の読み込み
>>> gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  #画像の変換
>>> cv2.imwrite('gray.bmp', gray)  #画像の保存
True

上のようにTrueが表示されれば、グレースケールにした画像が保存できていることを意味しています。

実際に、プログラムを実行したフォルダに行って、’gray.bmp’というファイルを探して表示してみると、

Pythonを使ってOpenCVのcvtColorメソッドを使ってRGB画像をグレースケールに返還した画像。

ちゃんと変換されていることが確認できました。

この記事では、PythonのOpenCVライブラリのcvtColor()関数を使って画像をグレースケールにする方法を紹介しました。グレースケール変換以外にも様々な変換があるので興味がある方は調べてみると良いでしょう。

監修してくれたメンター

小倉翔悟(おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年でPythonは割と得意。好きな物理理論は一般相対性理論で動物も好き。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。