■CALENDAR■
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   
<<前月 2021年09月 次月>>
■LOGIN■
現在のモード: ゲストモード
USER ID:
USER PW:
■ADMIN■
ADMIN ID:
ADMIN PW:
■NEW ENTRIES■
■CATEGORIES■
■BY CATEGORY■
■ARCHIVES■
■PROFILE■
■POWERED BY■
BLOGN(ぶろぐん)
BLOGNPLUS(ぶろぐん+)
■OTHER■

OpenCVのインストール手順3
PDF
### OpenCV install メモ

以下の2種類のやりかたがある.  
(A)opencv_world341.libを使う方法  
  ライブラリopencv_world341.lib(全部入っている)というlibを使う.  
(B)各ライブラリを個別に利用  
  ユーザーが各ライブラリを個別に指示できるようにコンパイルする.  

個人的には,(B)がいい気がする.

---
#### (A)opencv_world341.libを使う方法
[1]OpenCVのダウンロード  
  以下のURLからDL.  
    https://sourceforge.net/projects/opencvlibrary/files/opencv-win/  
  から opencv-3.4.1-vc14_vc15.exeをDL(20180423時点)

[2]CドライブにOpenCVのフォルダ作成する.  
  C:\OpenCV

[3]DLしたopencv-3.4.1-vc14_vc15.exeをダブルクリック  
 ・解凍先を選択-->D:\OpenCV\source とした.  
 ・HDDが1つのノートPCの場合,C:\OpenCV\source とする.  
 ・opencvというフォルダが作られるので,OpenCV3.4.1に名前を変更する.  
 ・buildとsourcesという2つのフォルダが出現する.  

[4]シンボリックリンクをはる.  
 (1)コマンドプロンプトを管理者権限で起動  
 (2)cd C:\OpenCV  
 (3)mklink /D include D:\OpenCV\source\OpenCV3.4.1\build\include  
 (4)mklink /D bin D:\OpenCV\source\OpenCV3.4.1\build\x64\vc14\bin  
   vc14のところは,インストールしているVSのバージョンで異なる.  
   VisualStudio 2015--->vc14  
   VisualStudio 2017--->vc15  
 (5)mklink /D lib D:\OpenCV\source\OpenCV3.4.1\build\x64\vc14\lib  
   vc14のところは,インストールしているVSのバージョンで異なる.  
   VisualStudio 2015--->vc14  
   VisualStudio 2017--->vc15  

ちなみに,Visual C++だと以下.

|  製品名         |  製品バージョン  |  内部バージョン  |  _MSC_VER    |  リリース  |
| :---:           | :---:            | :---:            | :---:        | :---:      |
| Visual C++ 2012 | 2012             | 11.0             | 1700         | 2012年     |
| Visual C++ 2013 | 2013             | 12.0             | 1800         | 2013年     |
| Visual C++ 2015 | 2015             | 14.0             | 1900         | 2015年     |
| Visual C++ 2017 | 2017             | 14.1             | 1910         | 2017年     |


 (6)環境変数に C:\OpenCV\bin を追加.  
 (7)再起動  
 (8)コード
```
  ReleaseModeの場合
  #pragma comment(lib,"C:\\OpenCV\\lib\\opencv_world341.lib)
  DebugModeの場合
  #pragma comment(lib,"C:\\OpenCV\\lib\\opencv_world341d.lib)
```
  をコードに書き込めば,リンクしてくれる.



#### (B)各ライブラリを個別に利用
[1][2]までは,一緒.  
[3]CMakeをhttps://cmake.org/download/ からダウンロードする.  
  cmake-3.11.1-win64-x64.msi をダウンロードした.(20180423時点)  
  インストール.  
[4]CMakeでslnを作成  
 (1)Where is the source code:D:\OpenCV\source\OpenCV3.4.1\sources  
   と入力.あるいは,Brouse Source...ボタンを押して選択.  
 (2)Where to build the binaries:D:/OpenCV/source/OpenCV3.4.1/sources/build  
   と入力  
 (3)Configureボタンを押す.  
 (4)Build directory does not exist, should I create it?  
   と言われたら,Yesボタンを押す.  
 (5)Specify the generator for this projectには,自分の環境のVisualStudioのバージョンを選ぶ.  
   "Visual Studio 14 2015 Win64"を選択した.  
   Finishボタンを押す.--->色々とcheckしてくれる.  
 (6)特に追加でビルドするのでなければ,Generateボタンを押す.  
 (7)slnができるので,CMakeは閉じて良い.  
[5]OpenCVのビルド  
 (1)D:\OpenCV\source\OpenCV3.4.1\sources\build に移動.  
 (2)OpenCV.slnをVisualStudio2015で開く.  
 (3)Releaseモードしか使わないので,メニュー下のモード切替を"Debug"-->"Release"にする.  
 (4)メニューのビルド→ソリューションのビルド  
 (5)終わったら,左メニューのINSTALLプロジェクトを右クリック→ビルド  

[6] シンボリックリンク
 ビルドされたファイル群は,
```
 D:\OpenCV\source\OpenCV3.4.1\sources\build\install\x64\vc14\bin
 D:\OpenCV\source\OpenCV3.4.1\sources\build\install\x64\vc14\lib
```
にできている.そこへリンクを張ればOK.  

```
コマンドプロンプト管理者モードで
cd c:\OpenCV
>mklink /D bin D:\OpenCV\source\OpenCV3.4.1\sources\build\install\x64\vc14\bin
>mklink /D lib D:\OpenCV\source\OpenCV3.4.1\sources\build\install\x64\vc14\lib
```

上記のリンクは,C:\OpenCV以下にbin, lib, includeというフォルダを作成し,ビルドしたファイル群とヘッダーファイルをコピー(移動)でもOK.

[7] コード
 cv_lib_ver.hを使うと便利.  
```
//cv_lib_ver.h
//20170302

//OpenCVのインストールDIR
#ifndef LIB_DIR
#define LIB_DIR	"C:\\OpenCV\\lib\\"
#endif


//OpenCVのバージョン
#ifndef _CV_VER
#define _CV_VER "341"
#endif



#ifdef _CVBLOB
#ifdef _DEBUG
#pragma comment(lib,"C:\\OpenCV\\cvblob\\lib\\x64\\cvblob.lib")
#else
#pragma comment(lib,"C:\\OpenCV\\cvblob\\lib\\x64\\cvblob.lib")
#endif
#endif



// #pragma の引数になる識別子と文字列を作成するマクロ.
#ifdef _DEBUG
#define OPENCV_COMMENT_LIB_FNAME(name) \
comment(lib, LIB_DIR"opencv_"name""_CV_VER"d.lib")
#else
#define OPENCV_COMMENT_LIB_FNAME(name) \
comment(lib, LIB_DIR"opencv_"name""_CV_VER".lib")
#endif


//*****不要なライブラリはコメントにする.*****

//メモリ確保/解放,行列,演算など
#define _CV_CORE_	
//画像処理,一般的なフィルタ処理など
#define _CV_IMGPROC_	
//ウィンドウなどのGUI,ファイル読込/保存,ビデオファイル,カメラなど
#define _CV_HIGHGUI_	
//サポートベクタマシン,ブースティングなどの機械学習
#define _CV_ML_
//SURF,FASTなどの特徴抽出
#define _CV_FEATURES2D_	
//前景/背景分離(background_segm.hpp)
#define _CV_VIDEO_	
//Haar,LBP,HOGなどのオブジェクト検出器
#define _CV_OBJDETECT_	
//カメラキャリブレーション,ステレオカメラなど
#define _CV_CALIB3D_	
//高速最近傍処理(FLANN)など
#define _CV_FLANN_	
//肌検出,MeanShiftなど完全な状態ではない
//#define _CV_CONTRIB_	
//旧関数との互換用
//#define _CV_LEGACY_	
//GPU(CUDA)による行列演算,画像処理など
//#define _CV_GPU_	
//VTKによるPointCloud処理
#define _CV_VIZ_	

//imread,imwrite
#define _CV_IMGCODECS_

//*************************
//メモリ確保/解放,行列,演算,描画など
//core_c.h (C言語用)
//core.hpp (C++用)
#ifdef _CV_CORE_
#pragma OPENCV_COMMENT_LIB_FNAME("core")
#endif


// ライブラリのリンク
//情報ソース  画像処理ソリューション
//http://imagingsolution.blog107.fc2.com/blog-entry-275.html

//画像処理,一般的なフィルタ処理など
//imgproc_c.h (C言語用)
//imgproc.hpp (C++用)
#ifdef _CV_IMGPROC_
#pragma OPENCV_COMMENT_LIB_FNAME("imgproc")
#endif

//ウィンドウなどのGUI,ファイル読込/保存,ビデオファイル,カメラなど
//highgui_c.h (C言語用),highgui.hpp (C++用)
#ifdef _CV_HIGHGUI_
#pragma OPENCV_COMMENT_LIB_FNAME("highgui")
#endif

#ifdef _CV_IMGCODECS_
#pragma OPENCV_COMMENT_LIB_FNAME("imgcodecs")
#endif

//サポートベクタマシン,ブースティングなどの機械学習
//ml.hpp
#ifdef _CV_ML_
#pragma OPENCV_COMMENT_LIB_FNAME("ml")
#endif

//SURF,FASTなどの特徴抽出
//features2d.hpp
#ifdef _CV_FEATURES2D_
#pragma OPENCV_COMMENT_LIB_FNAME("features2d")
#endif

//前景/背景分離(background_segm.hpp)
//トラッキング(tracking.hpp)
#ifdef _CV_VIDEO_
#pragma OPENCV_COMMENT_LIB_FNAME("video")
#endif

//Haar,LBP,HOGなどのオブジェクト検出器
//objdetect.hpp
#ifdef _CV_OBJDETECT_
#pragma OPENCV_COMMENT_LIB_FNAME("objdetect")
#endif

//カメラキャリブレーション,ステレオカメラなど
//calib3d.hpp
#ifdef _CV_CALIB3D_
#pragma OPENCV_COMMENT_LIB_FNAME("calib3d")
#endif

//高速最近傍処理(FLANN)など
//flann.hpp
#ifdef _CV_FLANN_
#pragma OPENCV_COMMENT_LIB_FNAME("flann")
#endif

//肌検出,MeanShiftなど完全な状態ではない
//contrib.hpp
//#ifdef _CV_CONTRIB_
//#pragma OPENCV_COMMENT_LIB_FNAME("contrib")
//#endif

//旧関数との互換用
//legacy.hpp
//#ifdef _CV_LEGACY_
//#pragma OPENCV_COMMENT_LIB_FNAME("legacy")
//#endif

//GPU(CUDA)による行列演算,画像処理など
//gpu.hpp
//#ifdef _CV_GPU_
//#pragma OPENCV_COMMENT_LIB_FNAME("gpu")
//#endif

//VTKによるPointCloud処理
//viz/vizcore.hpp
#ifdef _CV_VIZ_
#pragma OPENCV_COMMENT_LIB_FNAME("viz")
#endif

```




| http://www.ccn.yamanashi.ac.jp/~tsuyoshi-s/blogn/blognplus/index.php?e=65 |
| C/C++ | 01:07 PM | comments (0) | trackback (0) |

PAGE TOP ↑