OpenCV3.1をopencv_contrib付きでVisual Studio2013でビルドしてインストールする

公開日: : OpenCV, 画像処理

スポンサーリンク

はじめに

OpenCV3.1でトラッキングがしたいと思いインストーラでインストールしたのですが、どうやらトラッキング系のモジュールはデフォルトでは付いていないらしく、opencv_contribというモジュールをインストールする必要があるようでした。ただ、このcontribですが、インストーラ形式ではなく、opencvと一緒に自分でビルドする必要があるのですが、それまでになんだかんだ苦戦したのでメモを残しておきます。

環境

Windows7 64bitですが、32bit版をインストールしました。

ダウンロード

まずは、CMakeをインストールします。これは省略します。

そして、OpenCVのソースコードをGitHubSourceForgeから「Source Code」をクリックしてダウンロードしてきます。GitHubはたまにサーバーが落ちていたりして、不完全な状態でダウンロードしてくるケースがあったので解凍の際エラーが出ていないかどうか気を付けてください。

次に、opencv_contribをダウンロードしてきます。ここで気を付けていただきたいのは、そのままダウンロードするのではなくOpenCV3.1バージョンのものをダウンロードする必要があるということです。タブの「Releases」をクリックするとこれまでのリリース物一覧が出てきますので、そこから「3.1.0」をzipボタンなどからダウンロードします。


↑releasesを選択


↑インストールしようとしているOpenCVのバージョンに合わせてダウンロード

CMake

CMakeを起動してダウンロードしてきたソースとビルド先を記入します。自分はDドライブ直下のdevというフォルダを作って、そこにダウンロードしてきたOpenCVのソースを「opencv-3.1.0」、opencv_contribのソースを「opencv_contrib-3.1.0」とリネームして設置しました。

後は「Configure」とすると何でビルドするか選択画面が出てくるので「Visual Studio 12 2013」を私は選択しました。

そして、Configureが終わるとエラーが出るので適宜必要なものをインストールするか、ビルド対象にならないようにチェック項目をはずすかします。ここで、必ず「OPENCV_EXTRA_MODULES_PATH」にopencv_contribのmodulesのパス「D:/dev/opencv_contrib-3.1.0/modules」を記入します。

気を付けてほしいのはパスをコピペして記入する場合、ディレクトリの区切りが「¥」になる場合があると思いますが、「/」に直さないとエラーがでることがあるので注意してください。

自分がやった感じですとトラッキングを試す分には新規にソフトやライブラリをインストールする必要はありませんでした。エラーが出なくなったら「Generate」を押します。

一応自分がチェックを外した項目を一覧にします。環境に合わせて適宜変えてください。

BUILD_opencv_bioinspired
BUILD_opencv_hdf
BUILD_opencv_python2
BUILD_opencv_python3
WITH_1394
WITH_CUDA
WITH_MATLAB
WITH_QT
WITH_VTK
WITH_WEBP

※一部はなんとなくで外しています。はずして大丈夫かの検証は適宜実施してください。

Visual Studioでビルド

CMakeがうまくいっているとopencv-3.1.0/buildフォルダ内に「OpenCV.sln」ファイルができているのでそれをVisualStudioで開きます。
開いたら32ビット版か64ビット版かで構成マネージャで変更してください。今回は「Win32」にしました。


↑項目にない場合は構成マネージャーから新規作成します。

そして、ソリューションエクスプローラーの「INSTALL」を右クリックして「スタートアッププロジェクトに設定」ののちビルドします。このビルドは数十分かかりますので気長に待ちます。これをDebug版とRelease版の両方やります。(Debug版はライブラリファイルやDLLファイルの末尾に「d」がつく)。

ここでエラーが出てもDLLやLIBファイルはできています。しかし、実際プロジェクトを新規作成して実行してみるとビルドは通るのですがCVのモジュールの実行時に例外が発生して正常に動かせなかったです。ですのでビルド時のエラーが消えるまでCMakeとVisualStudioの間を往復しました。この際でたエラーのダイジェストを紹介します。

HDF5でエラー

ビルド時「error C2015: 定数式が必要です。」などのエラーが大量発生してしまいました。エラーの該当箇所「hdf5.hpp」を見てみると配列の宣言の方法に問題があるようです。

ぱっと見C++でできなさそうな書き方をされています。ちょっと自分には手に負えなかったのでCMakeの際にHDF関係のチェック(BUILD_opencv_hdf)をはずしてビルド対象外として再度ビルドしました。(ちょっと調べてみると何かのデータセットやそのフォーマット関係?のようでしたので不要と判断しました。)

bioinspiredでエラー

bioinspired関係のエラーが出ていたので、CMakeの際「BUILD_opencv_bioinspired」のチェックを外して再度ビルドしました。

Pythonでエラー

Pythonは32bit環境のビルドのとき、64bitと32bitで食い違っているという旨のエラーが出たのではずしました。Python版の利用の際は64ビット版を使えということだと思います。

設定

今回のビルドの成果物は下記になります。(今回のは32bit版です。64ビット版ですと「x86」→「x64」となっていると思います)

インクルードディレクトリ:「D:\dev\opencv-3.1.0\build\install\include」
ライブラリディレクトリ:「D:\dev\opencv-3.1.0\build\install\x86\vc12\lib」
DLLディレクトリ「D:\dev\opencv-3.1.0\build\install\x86\vc12\bin」

インクルードディレクトリとライブラリディレクトリはそれぞれVisualStudioのプロジェクトの設定で「C/C++」→「追加のインクルードディレクトリ」、「リンカー」→「追加のライブラリディレクトリ」にDebugとReleaseの両方設定します。この設定はプロジェクト毎にする必要があります。
DLLのディレクトリは環境変数に追加します。

まとめ

OpenCV3.1をopencv_contrib付きでビルドしました。
Tracking APIを使ってトラッキングをしてみました。

スポンサーリンク
Amazon
  • このエントリーをはてなブックマークに追加

関連記事

OpenCV3.1のTracking APIでトラッキングを試す

はじめに 先日OpenCV3.1をopencv_contrib付きでインストールしてTrackin

記事を読む

javascriptで画像処理をする【HTML5】

HTML5でjavascriptを使って画像処理をしてみました。このページでは手始めにグレースケール

記事を読む

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Python版のサンプルは見つかるので

記事を読む

【javascript】RGB⇔カラーコード変換ライブラリ

RGBをカラーコードに変換、または、カラーコードをRGBに変換したい場合が出てきたのでどういうも

記事を読む

【ImgToAA】画像をAA化するツール

指定の画像を読み込ませてAA化するツールです。サンプルはこちら。 (使い方) 画像ファイ

記事を読む

UWSCを使ったソフト自動立ち上げ【SoftEther VPN Server】

やりたいこと 最近SoftEtherという筑波大学発のベンチャー企業が立ち上げたVPNサービスとい

記事を読む

OpenCVで矢印を描画する

OpenCVで矢印を描画するという関数が無いみたいだったので作りました。書いていることは参考リンク先

記事を読む

【3DCG・MMD】カメラレンズによる見え方シミュレータ作成について

カメラのレンズが違うことでどのくらい出来上がる写真に差が出てくるのかを確かめることのできるシミュレー

記事を読む

チェスボード画像自動生成ツール

1マスのサイズ(ピクセル) マスの数× 左上が白 枠をつけるか 枠の色白黒

記事を読む

【OpenCV】画素値が取得できない??

IplImageに格納された画素値を利用してフィルター処理を行おうとしましたが、なぜか画素値が取得さ

記事を読む

【Laravel5】既存のDBからデータを取得して表示する

はじめに 今まで作ったWebサイトをLaravel5で見れるようにし

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Pyth

Intel Corei7-7700TでHTC Viveの動作確認

はじめに HTC ViveというVRヘッドセットで遊んでみたのでその

【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイ

OpenCV3.1のTracking APIでトラッキングを試す

はじめに 先日OpenCV3.1をopencv_contrib付きで

パソコンを複数台使う際便利なツール

はじめに 先日、機械学習用にGPUを積んだBTOパソコンを購入しまし

OpenCV3.1をopencv_contrib付きでVisual Studio2013でビルドしてインストールする

はじめに OpenCV3.1でトラッキングがしたいと思いインストーラ

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑