728x90
반응형

참고자료 1 : http://m.blog.naver.com/imsujin91/220596347249

참고자료 2 : http://kimjuyoung.blogspot.kr/2015/11/window-opencvcontrib-master-install.html

참고자료 3 : https://github.com/opencv/opencv_contrib

참고자료 4 : http://dongjinlee.tistory.com/entry/%ED%8D%BC%EC%98%B4-OpenCV-ExtraModules%EC%9D%84-windows-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-%EC%84%A4%EC%B9%98%EB%B2%95

참고자료 5 : http://neodreamer-dev.tistory.com/748

참고자료 6 : http://cafe.naver.com/opencv

참고자료 7 : http://pgmaru.tistory.com/68


Slic 알고리즘 쓰려다가 다른 알고리즘들도 써보고 싶어서 OpenCV_contrib 를 설치하여 빌드해보게 되었다. 이것이 화근이었는지 계속 에러가 나서 짜증나 죽는줄 알았다. 아무튼 그냥 다음부터는 git을 뒤져서 헤더파일과 필요한 파일만 포함하여 테스트해봐야겠다고 생각했다. 이거하느라 구글을 을마나 봤는지 모르겠다.



OpenCV Extra Modules 


  OpenCV에서 새로운 API가 추가되는 경우 안정성이나 성능이 검증되지 않은 경우 공식 배포를 하지 않고, Extra Modules(opencv_contrib)에 포함시키게 된다. 내가 써보고싶었던 Slic algorithm도 여기에 포함되어있다.


설치환경과 필요한 프로그램은 아래와 같다.


설치환경 : Visual Studio 2013, Windows 32bit 


64bit 환경에서의 설치는 아래 링크를 참고하기를 바란다. 꽤 자세히 나와있다. 


https://putuyuwono.wordpress.com/2015/04/23/building-and-installing-opencv-3-0-on-windows-7-64-bit/




1. CMAKE 3.7.0 다운로드 

https://cmake.org/download/

나는 Windows win32-x86 ZIP 다운 받았고 압축을 풀어주었다.


2. OpenCV 3.0 or 3.1 다운로드

http://opencv.org/downloads.html

나는 이미 3.0 버전이 깔려있었다. 


3. OpenCV contrib

https://github.com/opencv/opencv_contrib


  여기서 Clone or download 초록 버튼을 눌러 zip 파일로 다운한 뒤 C드라이브에 압축을 풀어주었다. 이 페이지에 OpenCV's extra modules 에 대한 전반적인 내용이 담겨있다. 이를 보고 따라해도 되지만 더 설명이 필요한 것 같아서 포스팅해본다.






1. CMAKE 설정 

설치하였던 cmake 폴더 - bin 폴더 - cmake-gui.exe 파일을 실행


Where is the source code - C:\opencv\sources


이 부분에 기존에 설치하였던 opencv 3.0 의 sources 경로를 입력해주었다. 새로 OpenCV를 설치하였다면 그 폴더의 sources 폴더의 경로를 입력해주면 된다.


Where to build the binaries - C:\opencv_extra_build


이 부분은 C 드라이브에 "opencv_extra_build" 라는 폴더를 새로이 생성해주고, 경로를 입력했다.


경로를 모두 다 입력한 뒤 "Configure" 를 누른다. 

그러면 창 하나가 뜨는데 자신의 비주얼 버전에 맞게 입력해주고 (Visual Studio 12 2013)

Use default native compliers 에 체크해주고 Finish를 누른다.


그러면 아래와 같이 빨갛게 변하면서 맨 아래 창에 Configureing done 이라는 메세지가 뜬다. 




이 과정이 끝나면 opencv_contrib/modules/bioinspired  라는 폴더를 삭제해준다. 삭제하지 않고, 비주얼 프로젝트를 생성하고 빌드하게 되면 에러메세지가 나타난다고 한다.


그 다음 빨갛게 표시된 부분에서 "OPENCV_EXTRA_MODULES_PATH"에서 다운받았던 opencv_contrib-master의 modules 디렉토리로 지정한다. 


라고 많은 블로그들과 git에 나와있었는데 나는 계속 Call Stack (most recent call first) 빨간줄 에러가 떠서 opencv_contrib-master 까지의 경로만 입력해주었더니 Configure에 성공하였다. 


경로를 입력해주고, 필요한 파일을 체크하고 필요없는 파일을 체크 해제 해준다. 


OpenCV 카페에서 찾아본 내용에 의하면 opencv world, contrib world는 체크하게 된다면 일부 파일에서 링크오류가 나기 때문에 가급적이면 체크를 해제한 상태로 두는게 낫다고 한다. 


http://cafe.naver.com/opencv/11896 (이 글 참조)



경로 입력해준 뒤 필요없는 파일을 체크하고 Configure 버튼을 누르게 되면, 

아래와 같이 맨 및 창에 Configuring done 이라는 메세지가 뜬다.



그 다음 Generate 버튼을 눌러주면 아래와 같이 뜬다. 그럼 이제 Cmake 설정은 끝이 났다.






2. Visual Studio 설정



CMAKE 설정이 완료되면, 아까 새로 생성했던 opencv_extra_build 폴더에서 "OpenCV" 프로젝트 파일을 열어준다. 그 다음 CMakeTargets 이라는 폴더의 INSTALL 파일을 우클릭하고, build 를 눌러준다. 나는 Debug 모드로 실행하였고, 빌드에 실패할 경우 실패된 파일은 쓸 수 없다.


그러면 조금 시간이 걸리긴 하지만 build가 되기 시작한다. 




아래와 같이 빌드에 모두 성공하게 되었다. 







3. 환경변수 설정 및 프로젝트 속성 설정


3-1. 환경변수 설정


시스템 속성 - 고급 시스템 설정 - 환경변수 - 시스템 변수 - Path 편집


자신이 만든 opencv_extra_build 폴더의 bin 폴더를 추가해준다.

C:\opencv_extra_build\install\x86\vc12\bin; 추가 




3-2. 비주얼 스튜디오 프로젝트 속성 설정


1. 프로젝트 속성 - C / C++ - 추가 포함 디렉터리 - include 

C:\opencv_extra_build\install\include


2. 링커 - 입력 - 추가 종속성 라이브러리 추가

C:\opencv_extra_build\install\x86\vc12\lib


편하게 lib 복사하는 법은 해당 폴더에 list.txt 파일을 만들고 dir /b /oe > list.txt 를 입력하고 저장한다. 그리고 list.txt -> list.bat 파일로 변경하고 실행한다. 그러면 list에 해당 폴더에 있는 내용들이 메모장에 출력되는 것을 확인할 수 있단다. 그런데 나는 이것 마저 어렵게 느껴져서 그냥 하나씩 다 입력했다...ㅋㅋ


debug 모드에선 마지막에 d를 붙이고, Release 모드에선 d를 빼고 입력해준다.


opencv_calib3d300d.lib

opencv_core300d.lib

opencv_features2d300d.lib

opencv_flann300d.lib

opencv_hal300d.lib

opencv_highgui300d.lib

opencv_imgcodecs300d.lib

opencv_imgproc300d.lib

opencv_objdetect300d.lib

opencv_photo300d.lib

opencv_shape300d.lib

opencv_stitching300d.lib

opencv_superres300d.lib

opencv_ts300d.lib

opencv_video300d.lib

opencv_videoio300d.lib

opencv_videostab300d.lib






설정 끝! 



728x90
반응형