以前のWindowsでOpenCVとopencv_contribをビルド&インストールするに引き続きOpenCVネタです。
この記事では、OpenCVの公式サンプルコードを実行する方法を紹介します。
あまり他の記事で紹介されているところを見ないのですが、OpenCVの公式リポジトリには大量のサンプルコードが用意されています。 このサンプル集はデモを見るだけでもなかなか勉強になりますし、実装もきれいなのでアプリ開発をするときの参考にもなります。
特に「OpenCVで何ができるの?」「この処理はどう書いたらいいの?」という入門者の方にはぜひ試してもらいたい内容です。
OpenCVの公式サンプル集
サンプル集へのリンクがこちら↓です。
見てのとおりC++、Java、Python向けのサンプルから、android、DNN、OpenGLなど特定のプラットフォーム向けのサンプルまで、様々なサンプルコードが含まれています。
この記事では環境構築と実行が簡単なPythonのサンプルコードの実行方法を紹介していきます。
インストールしておくもの
OpenCVライブラリのインストール
Pythonのパッケージマネージャーpipを使います。
いくつかのサンプルはOpenCVの外部モジュールであるopencv-contribを利用するのでそちらも一緒にインストールしておきます。
python -m pip install opencv-python opencv-contrib-python
サンプルのダウンロード
サンプルコードやサンプル画像を取得するためにOpenCVのリポジトリを丸ごとクローンします。 適当なディレクトリを作ってターミナル(WindowsならGitをインストールしたときに付いてくるGit BashでOK)を開き、次のコマンドを実行しましょう。
git clone https://github.com/opencv/opencv.git
サンプルを実行してみる
クローンしたリポジトリのopencv/samples/pythonに大量のpythonファイルが入っていると思います。
その中の1つのdemo.pyを実行します。
cd opencv/samples/python
python demo.py
もしWindowsで'C:\Program' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。のようなエラーが出たら一旦画面を閉じて、demo.pyの170行目あたりのPopen(sys.executable + ' ' + cmd, shell=True)をPopen('"' + sys.executable + '" ' + cmd, shell=True)に変更してもう一度実行してみてください。
すると次のような画面が出てきて、サンプルコードの一覧が表示されます。

あとは選択して実行するだけでサンプルのデモを見ることができます。
とりあえずbrowseを選択してRunボタンを押してみましょう。
するとサンプルbrowse.pyが起動します。

マウスカーソルを当てた場所が拡大して表示される、というだけの簡単なプログラムですが、きちんと動いていることが確認できると思います。
プログラムを終了するときはESCキーを押します。
ついでにもう一つ、今度はdeconvolutionを実行してみましょう。

今度はもう少し実践的なデモです。
左の手ブレ写真にdeconvolution(畳み込み演算の逆の処理)を施すことで手ブレによるノイズを除去し、右のような画像を復元してくれるアプリケーションです。 右上のスライダーを動かしてカーネルのパラメータを調節できるようになっています。
以上、OpenCVの公式サンプルの実行方法を簡単に説明しました。
この他にもカメラキャリブレーション(calibrate)、Canny法によるエッジ検出(edge)、顔認識(facedetect)、Webカメラで物体追跡(camshift)など色々なサンプルがあるので、自分でプログラムを書くときの参考にしてみてください。
(時間ができたら全サンプルの解説記事とか書いてみたいなぁ)