[opencv] extra modules 빌드

이 작업은 꽤 긴 시간이 걸리므로 커피 한잔과 함께 하는걸 추천한다.

1. 설치 준비

CMake 를 다운받아 설치한다.

opencvgithub 에서 다운로드 한다.(Clone)

이게 근데 2017년 06월 29일 기준으로 버전이 3.2.0 인데 같은 3.2.0 인데 최신버전이 CMake에 버그가 있다. 17-05-20 에 받아논 파일은 그러한 버그가 없다.

opencv-contribgithub 에서 다운로드 한다.

Eigen 도 다운로드 받는다.

http://eigen.tuxfamily.org/index.php?title=Main_Page

TBB

2. 파일 배치

다운받고 압축을 풀면 디렉토리 구조가 아래와 같을 것이다.

해당 위치에 CMake로 빌드할 폴더인 cmake 도 하나 만들어 주자.

(숨김폴더,하위폴더 생략)

┌ opencv_contrib-master
│   ├ doc
│   ├ modules       (A)
│   ├ samples
│   ├ CONTRIBUTING.md
│   ├ LICENSE
│   └ README.md
├ opencv-master
│   ├ 3rdparty
│   ├ apps
│   ├ cmake
│   ├ data
│   ├ doc
│   ├ include
│   ├ modules   (B)
│   ├ platforms
│   ├ samples
│   ├ CMakeLists.txt
│   ├ CONTRIBUTING.md
│   ├ LICENSE
│   └ README.md
├ tbb2017_20170604oss
├ cmake
├ tbb2017_20170604oss_win.zip
├ eigen-eigen-5a0156e40feb
├ eigen-eigen-5a0156e40feb.tar.bz2
├ opencv_contrib-master.zip
└ opencv-master.zip
3. CMake

CMake 를 켠뒤 아래 사진과 같이 source code 경로와 build 경로를 지정한다.

긜고 Configure 버튼을 클릭한다.

어차피 opencv3.1 이상부터는 x64 만 지원하기 때문에 Visual Studio 14 2015 Win64 버전을 선택하였다.

(다른 Visual Studio 버전을 선택해도 되지만 Win64 옵션이 있는 컴파일러를 선택한다.)

이제 기본 옵션을 설정한다.

BUILD-PERF_TESTS        (X)    ;할 필요 없음  
BUILD_PACKAGE           (X)    ;빌드가 너무 느려짐  
BUILD_IPP_IW            (X)    ;Release에서 error 유발  
WITH_LAPACK             (X)  
WITH_MATLAB             (X)  
WITH_OPENMP             (O)  
WITH_VTK                (X)  
WITH_TBB                (O)  

만일 CUDA 또는 OpenCL을 원하지 않는다면 WITHCUDA 또는 WITHOPENCL 을 체크 해제 한다. 원한다면 아래의 옵션들을 체크

WITH_CUBLAS  
WITH_OPENCL_SVM  

마지막으로, OPENCV_EXTRA_MODULES_PATHopencv_contrib-master/modules 의 경로를 넣어준다.

마찬가지로 EIGEN_INCLUDE_PATHeigen-eigen-5a0156e40feb 의 경로를 넣어준다.

설정이 완료 되었으면 다시 Configure 을 클릭한다.

이제 새로운 항목인 TBB_ENV_DIRS 가 생긴다. 다운받은 TBBinclude path 를 넣어준다. (ex : tbb2017_20170604oss/include)

TBB_ENV_LIB : tbb2017_20170604oss/lib/intel64/vc14/tbb.lib

TBB_ENV_LIB_DEBUG : tbb2017_20170604oss/lib/intel64/vc14/tbb_debug.lib

TBB_VER_FILE : tbb2017_20170604oss/include/tbb/tbb_stddef.h

다시 Configure 를 클릭한다.

아래와 같이 빨간 배경이 없어지면 Generate 를 클릭한다. 없어질때 까지 Configure 눌러라.

4. Visual studio build

이제 아까 만든 cmake 폴더에 들어가서 OpenCV.sln 을 클릭하여 열어준다.

모든 프로젝트를 다 빌드하는것이 아니라. CMakeTargets/ALL_BUILDCMakeTargets/INSTALL 만을 빌드한다.

ALL_BUILD 부터 빌드한다. 하나로도 실패한다면 잘못 된거다.

실패한다고 당황하지말고 문제를 찾으면 된다.(당황해도 어차피 화난다)

그다음 INSTALL 을 빌드한다.

이제 cmake/install 폴더에 필요한 .h,.lib,.dll 들이 생성 되있다.

Release 역시 똑같이 하면 된다.

가능하다면 이 폴더를 정리해서 따로 저장을 하는것을 추천한다.

바로 이렇게!!