OpenCVを使って画像処理(インストール編) [OpenCV]
ダウンロード
以下のサイトからWindows版を後、最新版をダウンロードする。現在の最新版は OpenCV-2.4.6.0.exe でした。
http://sourceforge.net/projects/opencvlibrary/files/
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/
インストール
ダウンロードしたOpenCV2.4.6.0.exeをクリックし起動する。
[…]ボタンを押してインストール先を指定し、「OK」ボタンを押すとインストールが開始される。それに先立ちインストールフォルダ「C:\OpenCV2.4.6」を作成しておくこと。
環境設定
この状態ではファイルが解凍されただけなので環境設定する。
スタートメニューから「コントロールパネル」、「システム」、「システムの詳細設定」と選択し「システムのプロパティ」を起動する。
ここで「詳細設定」田ぬ、「環境変数」ボタンを押し「環境変数」ダイアログを起動する。
システム環境変数のリストから「Path」を選択し「編集」ボタンを押す。
変数値に以下の2つの値を追加して「OK」ボタンを押す。
C:\OpenCV2.4.6\opencv\build\x86\vc10
C:\OpenCV2.4.6\opencv\build\x86\vc10\bin
コンパイルテスト
Visual Studio 2010から「Visual C++」「Windows フォームアプリケーション」プロジェクトを作成する。
“stdafx.h”に以下のコードを追加。
#include <opencv/cv.h>
#include <opencv/highgui.h>
プロジェクトのプロパティダイアログを起動する。
インクルードディレクトリの設定
「構成プロパティ」「VC++ディレクトリ」「インクロードディレクトリ」、「▼」ボタン、「編集」と選択し「インストールディレクトリ」ダイアログを起動する。
「フォルダ」アイコン、「…」ボタンと選択しディレクトリ選択ダイアログを起動する。
インクルードディレクトリ”C:\OpenCV2.4.6\opencv\build\include”、ライブラリディレクトリ”C:\OpenCV2.4.6\opencv\build\x86\vc10\lib”を設定する。
共通言語ランタイムサポートを(/clr)へ変更する。
この状態でビルドすると以下のような「未解決の外部シンボルエラー」が発生する。
error LNK2019: 未解決の外部シンボル _cvReleaseImage が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル _cvWaitKey が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル _cvShowImage が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル _cvMoveWindow が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル _cvNamedWindow が関数 _main で参照されました。
error LNK2019: 未解決の外部シンボル _cvLoadImage が関数 _main で参照されました。
解決方法は、「プロジェクトのプロパティ」ダイアログから「構成プロパティ」「リンカー」「入力」を選択し、「追加の依存ファイル」にライブラリディレクトリ”C:\OpenCV2.4.6\opencv\build\x86\vc10\lib”内のライブラリすべてを登録する。
今回登録したのは以下の40個のライブラリです。
opencv_calib3d246.lib
opencv_calib3d246d.lib
opencv_contrib246.lib
opencv_contrib246d.lib
opencv_core246.lib
opencv_core246d.lib
opencv_features2d246.lib
opencv_features2d246d.lib
opencv_flann246.lib
opencv_flann246d.lib
opencv_gpu246.lib
opencv_gpu246d.lib
opencv_haartraining_engine.lib
opencv_haartraining_engined.lib
opencv_highgui246.lib
opencv_highgui246d.lib
opencv_imgproc246.lib
opencv_imgproc246d.lib
opencv_legacy246.lib
opencv_legacy246d.lib
opencv_ml246.lib
opencv_ml246d.lib
opencv_nonfree246.lib
opencv_nonfree246d.lib
opencv_objdetect246.lib
opencv_objdetect246d.lib
opencv_ocl246.lib
opencv_ocl246d.lib
opencv_photo246.lib
opencv_photo246d.lib
opencv_stitching246.lib
opencv_stitching246d.lib
opencv_superres246.lib
opencv_superres246d.lib
opencv_ts246.lib
opencv_ts246d.lib
opencv_video246.lib
opencv_video246d.lib
opencv_videostab246.lib
opencv_videostab246d.lib
リリースビルドOKとなりました。しかしデバッグビルドはNGです。以下のエラーがでます。
エラー 1 error LNK2038: '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'AssemblyInfo.obj' と一致しません。 C:\Users\2023786\Documents\Visual Studio 2010\Projects\OpenCV_Test\OpenCV_Test\opencv_haartraining_engine.lib(cvsamples.obj) OpenCV_Test
エラー 2 error LNK2038: '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'AssemblyInfo.obj' と一致しません。 C:\Users\2023786\Documents\Visual Studio 2010\Projects\OpenCV_Test\OpenCV_Test\opencv_haartraining_engine.lib(cvcommon.obj) OpenCV_Test
エラー 3 error LNK2038: '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'AssemblyInfo.obj' と一致しません。 C:\Users\2023786\Documents\Visual Studio 2010\Projects\OpenCV_Test\OpenCV_Test\opencv_haartraining_engine.lib(cvhaartraining.obj) OpenCV_Test
エラー 4 error LNK2038: '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'AssemblyInfo.obj' と一致しません。 C:\Users\2023786\Documents\Visual Studio 2010\Projects\OpenCV_Test\OpenCV_Test\opencv_haartraining_engine.lib(cvboost.obj) OpenCV_Test
エラー 5 error LNK2038: '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '0' が 2 の値 'AssemblyInfo.obj' と一致しません。 C:\Users\2023786\Documents\Visual Studio 2010\Projects\OpenCV_Test\OpenCV_Test\opencv_haartraining_engine.lib(cvhaarclassifier.obj) OpenCV_Test
警告 6 warning LNK4098: defaultlib 'MSVCRTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 C:\Users\2023786\Documents\Visual Studio 2010\Projects\OpenCV_Test\OpenCV_Test\LINK OpenCV_Test
エラー 7 error LNK1319: 5 の不一致が検出されました C:\Users\2023786\Documents\Visual Studio 2010\Projects\OpenCV_Test\Debug\OpenCV_Test.exe 1 1 OpenCV_Test
先に行った、「プロジェクトのプロパティ」ダイアログから「構成プロパティ」「リンカー」「入力」を選択し、「追加の依存ファイル」にライブラリディレクトリ”C:\OpenCV2.4.6\opencv\build\x86\vc10\lib”内のライブラリすべてを登録する。から以下の2つのライブラリを削除したらビルドOKとなった。この2つライブラリの情報にたどり着けなかったので、無視して開発を進めることにします。
opencv_haartraining_engine.lib
opencv_haartraining_engined.lib
インストール編は以上で終了とします。次回はアプリケーションの開発編とします。
参考サイト
- http://gihyo.jp/dev/feature/01/opencv
- http://vision-ex.blogspot.jp/2013/05/opencv-245-windows-7-64bit.html
- http://claimant.cocolog-nifty.com/blog/2013/04/opencv-245-2b05.html
- http://imagingsolution.net/program/opencv/opencv2-4-dynamic-downlaod-install/
コメント 0