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を使ってトラッキングをしてみました。

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

関連記事

WordPressサイトのSSL対応(HTTPS化)手順のまとめ【さくらサーバー】

先週頃にこのサイトをSSL対応しましたのでその流れについてまとめておき

【Google Charts】動的にグラフを更新する方法

はじめに Webサイト上でグラフを描こうと思った場合、いくつかのJa

体重変化量計算シミュレータ【ダイエット/肥満】

ツール本体 入力 カロリー入力 1日の余剰摂取/消費カロリー

おサイフケータイ対応ストレージ32GBのSIMフリースマホまとめ【2017年秋版】

はじめに SIMフリーの格安スマホのおサイフケータイ機能付きのもので

リクルート期間限定ポイントの有効な使い道

はじめに  先日クレジットカードの見直し活動の一環でポイント還元率の

初心者がお金を貯めるための節約・財テク手法まとめ【ポイント還元・投資・税金対策】

はじめに  最近なるべく節約しようと思い、お金周りに関して色々調べて

動画講座を効率的にキャプチャして復習する方法

はじめに  最近、動画媒体の講座などをたまに視聴しています。独学だと

→もっと見る

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