티스토리 뷰

OpenCV

OpenCV 2.4.9 설치 (Visual Studio 2012)

duckchan.seo 2016. 10. 30. 23:15

OpenCV 를 사용하기 위한 간단한 포스팅이다. 이미 OpenCV 설치법에 대한 많은 자료들이 있어서 윈도우에 설치 후 Visual Studio 2012에서 사용하기 위한 세팅법에 대해서 간단히 남기려고 한다.

 

먼저 OpenCV[각주:1]는 Intel에서 시작하여 현재까지 개발이 진행중인 오픈소스이다. 상업적이나 학문적인 목적으로 얼마든지 사용이 가능한 소스이다. 물론 OpenCV를 이용하여 개발을 했다고 해서 오픈을 해야하는 의무는 없다.

일단 OpenCV 최신버젼은 사이트에서 받아서 설치를 할 수 있다.  받고 윈도우 지정한 위치에 설치를 마치면 아래와 같은 세팅으로 사용을 할 수 있다.

 

먼저 OpenCV의 dll파일의 경로를 윈도우 환경변수 Path에 등록시켜야 한다. 이 과정을 하지 않으면 Visual Studio를 통해 빌드된 결과물을 실행할때마다 dll을 찾을 수 없다는 오류가 발생한다. 그때마다 설치하 폴더에서 dll 파일을 프로젝트에 복사해와서 해결을 할 수 있지만 환경변수에 dll 위치를 설정해 두면 매번 위와 같은 불편함 없이 사용을 할 수 있다.

 

[컴퓨터/속성/고급시스템설정/고급/환경변수]를 클릭해서 보면 하단 항목에 Path라는 변수가 있다. 여기에 설치한 opencv 의 dll 경로를 추가한다.

 

 

위와 같이 path 변수 끝에 C:\opencv\build\x86\vc11\bin을 추가를 한다. 참고로 제가 설치한 위치는 C:\opencv 이다. 케멘드 창에서 path를 입력하면 등록된 변수값들을 확인할 수 있다. 마지막에 dll 을 등록한 경로를 볼 수 있다. 

 

 

위의 예는 opencv가 c:\ 에 설치가 되어있으면서 32bit, visual studio 2012를 사용하는 경우이다. 만약 2010라면 vc10\bin, 2013 사용자라면 vc12\bin을 추가하면 된다.

 

다음으로는 visual studio에서 프로젝트를 생성을 했다면 프로젝트 속성에서 몇자기 추가 설정이 필요하다. 첫 번째로 C/C++ /일반(General)/추가포함디렉토리(Additional Include Directories) 항목에 opencv 사용을 위한 header 파일의 include 경로를 입력한다.

 

C:\opencv\build\include

 

 

위 경로설정을 하지 않는다면 다음과 같은 오류 출력을 볼 수 있을것이다.

 

fatal error C1083: 포함 파일을 열 수 없습니다. ‘opencv\cv.h’

 

다음으로 링커(Linker)/일반(General)/추가 라이브러리 디렉토(Additional Library Directories) 리에 lib들의 경로를 설정한다.

 

C:\opencv\build\x86\vc11\lib

 

 

 

이 설정은 프로젝트에서 동적 lib를 찾기 위한 경로를 알려주는 것이다. 만약 이 경로 설정을 입력하지 않으면 아래와 같은 Link 오류가 발생한다.

 

LINK : fatal error LNK1104: ‘opencv_core249.lib’ 파일을 열 수 없습니다.

 

그 다음으로는 링커(Linker)/입력(Input)/추가 종속성(Additional Dependencies)에 프로젝트에서 필요한 lib들을 추가를 한다. 이전 설정은 이런 lib들을 찾을 수 있는 경로를 설정했다면 이 마지막 설정은 어떤 lib를 프로젝트에 추가를 할지를 입력하는 것이다. 필요한 라이브러리 파일명만 입력을 해도 되고 모든 파일을 입력해도 괜찮다.

 

 

파일명에 보면 opencv_core249.lib, opencv_core249d.lib 가 있는데 Release와 Debug의 차이이다. 프로젝트 빌드 조건에 맞게 추가를 해주면 된다. 설정에서도 입력을 할 수 있지만 아래와 같은 방법으로 코드상에 추가를 해도된다.

 

#pragma comment(lib, “opencv_core249.lib”)

 

속성창에 입력을 하는것 보다 코드상에 입력하는 방법이 편리하고 추후 코드를 볼때마다 속성창을 열지 않고도 종속성 판단이 용이한 장점이 있다.

 

  1. Open Source Computer Vision Library [본문으로]
댓글