OpenCVをコマンドラインで

2015年4月1日 by admin | Filed under 未分類.

OpenCVを使う機会がありまして、ちょっと面倒だったのでメモしておきます。
当方、C言語はコマンドラインで開発しており、統合環境を嫌っておりますので、そのための設定です。ひょっとすると、統合環境ではもっと簡単にセットアップできるのかもしれません。

1.ダウンロード

http://opencv.org/downloads.html

から行いました。version3.0Betaなるものもありますが、まあ仕事だったので、手堅く2.4.10をダウンロードしました。exeのほうを落としましたが、実行しても自己解凍を行うだけのようです。c:\を展開ディレクトリに設定すると、c:\OpenCVが出来上がります。

2. 場所の確認
c:\OpenCVに展開(解凍先にはc:\を指定)したとして書きます。
c:\OpenCV\build が、ライブラリを使うときのディレクトリのようです。もう1つsourcesディレクトリもあるのですが、OpenCVの中身をみたいとき、再コンパイルしたいとき以外には使うことはないと思います。
c:\OpenCV\build\include がインクルードパスのようです。この中がさらに OpenCV と OpenCV2 に別れていますが、include にパスが通っているのが前提になっていますので、これをインクルードパスにします。VCのコマンドラインでは、

-Ic:\OpenCV\build\include

をコンパイル時に追加します。

ライブラリは、c:\OpenCV\build\x86\vc10\lib(32ビットVisualStudio2010の場合)にあります。
64ビットの場合は、x64に、BVisualStudioのバージョンが違うものはvc11,vc12あたりにあるようです。
一番下のディレクトリ名がlibになっていて、このとなりにbinというディレクトリもあります。
このライブラリインポート物でして、実行時にはdllが必要になり、このdllがさっきのbinディレクトリに入っています。

またライブラリのファイル名は、バージョン番号を含んでいて、バージョンアップされた場合、メークファイルなんかを書き直すのが面倒そうです。

ひとまず、リンク時に、ライブラリパスとして、
/LIBPATH:c:\OpenCV\build\x86\vc10\lib
を追加して、リンクするライブラリとしては、opencv_core と opencv_highgui をしてしました。他のライブラリ部分を使うには、当該関数がどのライブラリに収録されているかを調べてリンクに追加する必要がありそうです。

これで、コンパイル&リンクはできましたが、実行時にdllが見つからないと結局実行できません。
当方の場合は、c:\bin32\dllというディレクトリを作成し、そこにパスを通して、作成モノ、ダウンロードモノのDLLを配置していますので、c:\OpenCV\build\x86\vc10\bin の中身を全てコピーしました。

ちなみに、パスを追加するには(windows7)、エクスプローラからコンピュータの位置でコンテキストメニューを出し(ひらたく言うと右クリックして)システム詳細設定、環境変数をクリックします。新しく開いたウィンドウ内にあるシステム環境変数内で、PATHを選択、編集を押します。1行ボックス内では編集しにくいので、内容をコピーしてエディタを起動、編集内容を書き戻して、OKを押します。当方の場合ですと、PATH先頭に、c:\bin32\dll; を書き足してあります。

これで何とか、コンパイル、リンク、実行まで行きました。
cap1015

← Previous