pythonのライブラリ「opencv」のインストール方法とオススメの使い方

19/02/03 18:07:47     19/02/03 18:42:39

opencvをインストールしたい人

opencvとは、画像処理や動画処理に便利なライブラリです。opencvを使用できる言語は複数あり、たとえばJavaやC++やPythonなどで使用可能になっています。プログラミング言語ごとにopencvが用意されているのですが、使用できる機能はほぼ同じです。

このページでは、Pythonのopencvである、opencv-Pythonについてインストール方法やオススメの使い方を紹介していきます。

opencvのインストール方法

opencvのインストール方法は複数ありますが、オススメ順に紹介していきます。他にも方法はあるかもしれませんが、代表的なものとしては三つあります。

pip install opencv-pythonでインストールする方法

方法は非常に簡単で、ターミナルやコマンドプロンプトから以下のコマンドを実行するだけです。

pip install opencv-python

これでopencvがインストールされますが、同時にnumpyもインストールされます。numpyは数値計算のためのライブラリで、Anacondaの環境と相性が良いものです。opencvを使用するのに必須というわけではありませんが、機能の相乗効果、拡張性があるため合わせてインストールされた方がむしろ良いでしょう。

ダウンロードページからダウンロード後にインストールする

上の方法の方が簡単で良いのですが、今から紹介する方法でもインストール可能です。まず以下のURLにアクセスし、自分のパソコンと開発環境とマッチする、whlファイルというものをダウンロードします。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

上記のファイルがpip install opencv-python本体のようなもので、ダウンロードが完了したらターミナルやコマンドプロンプトからコマンド入力していきます。たとえばダウンロードしたファイルがopencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whlであれば、以下のコマンドを入力します。

pip install opencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whl

コマンドの意味を深く考える必要はありませんが、パソコンのなかにダウンロードしたpip install opencv-pythonを自分の環境にインストールするイメージです。次に、以下のコマンドを入力します。

pip install numpy

これでインストールは完了です。要約すると、①インストールのためのファイルをダウンロード、②コマンド入力、という手順だけで完了するため、非常に簡単です。ただしこの方法でもAnacondaは必要で、なおかつ先ほど紹介した方法の方が簡単です。

なので、特別な理由がない限りわざわざネットからファイルをダウンロードする必要もないかと思います。

OpenCVの公式サイトからダウンロードしたファイルを使う方法

最後の三つ目は公式ページからファイルをダウンロードしてきて設定する方法です。この場合ダウンロードしてくるファイルはwhlファイルではなく実行ファイルであるため、実行ファイルをダブルクリックするだけでインストール作業が進みます。

具体的にどの実行ファイルをダウンロードしてくるかについては、パソコンと開発環境によります。

OpenCVの使い方

インストールが完了したら、さっそく使用が可能です。使用すると言ってもライブラリの機能は種類が多いため、オススメできる代表的な使い方について紹介していきます。

顔検出機能

OpenCVで今もっとも注目度の高い機能と言えば、顔検出機能かもしれません。もともとPythonは人工知能分野で使われることの多いプログラミング言語で、Anacondaと組み合わせるとなおさらその傾向があります。

OpenCVはAnacondaの環境下で使われることの多いライブラリなので、人工知能分野で使えるライブラリということです。そして、顔検出機能は人工知能が役立つシステムで、セキュリティ強化、犯罪抑止、社会の利便性向上、と活躍が期待されています。

顔検出機能の具体的な使い方としては、cv2.CascadeClassifier()を使います。ソースコードについてはここには載せませんが、検索するとサンプルコードが出てきます。

輪郭検出機能

顔検出機能と似ていますが、輪郭は顔だけでなく物体の外枠を認識することが可能です。cv2.findContours()を使います。これについてもサンプルコードは掲載しませんが、ネットで検索すればすぐに閲覧することができます。

エッジ検出機能

輪郭検出機能では物体の外枠を検出しましたが、エッジ検出機能では外枠だけでなく色合いや凹凸が変化する部分を検出し、色付けします。cv2.Canny()という関数で検出が可能です。

画像ヒストグラムを出す機能

画像ヒストグラムを出す機能では、赤、緑、青の情報をグラフで可視化することができます。近年ブルーライトなどが問題視されることが増えているため、今後より注目されると思われるコードです。

cv2.calcHist()という関数を使用することで画像ヒストグラムを検出できますが、可視化するためには別のライブラリが必要になります。matplotlibというライブラリを使用することで可視化できるのですが、このようにopencvは別のライブラリと組み合わせることでより利便性が高まります。

ちなみにmatplotlibのインストールも方法は簡単で、ターミナルやコマンドプロンプトから以下のコードを実行します。

pip install matplotlib

これだけでインストールが完了し、ライブラリを呼び出して使えるようになります。

円の検出機能

画像のなかの円だけを抽出することが可能になるコードです。cv2.HoughCircles()を使います。また完全な円だけでなく楕円等どこまで検出するかを引数で設定することが可能です。

以上が特によく使われるopencvの機能ですが、もちろんこれ以外にも数多くの機能がライブラリには含まれています。今回はなんとなく使い方のイメージを持っていただければ良いかと思います。

ライブラリのソースコードは当然複雑で、少し勉強したくらいでは解読できない高度なものなのですが、ライブラリを使用するだけならインストールから実装まで含めてまったく難しくはありません。

今回あえてサンプルコードは紹介しませんでしたが、上記の例だとcv2をインポートして、単にそのなかの関数をそれぞれ指定するだけでした。matplotlibを使用するケースもありましたが、これも同様にインポートして、関数を指定するだけです。

引数の詳細については紹介しませんでしたが、これについても必要な際にネット検索すればすぐに出てきます。画像処理のライブラリと言われるとソースコードが難しいように思われるかもしれませんが、ライブラリを使用するだけならかなり簡単なので、ぜひPython初心者レベルでも積極的にチャレンジしていただければと思います。

詳細な技術が気になる方は、ライブラリのソースコードをトレースしてみても良いかもしれませんね。

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する