본문 바로가기

유진아이티에스

로그인

처음으로 로그인 개발문의

OpenCV 소개

페이지 정보

작성자 유진아이티에스 작성일15-01-26 15:33 조회8,146회

본문

OpenCV

OpenCV는 영상처리 및 컴퓨터 비젼과 관련된 라이브러리 입니다. OpenCV는 BSD 라이선스 기반으로 배포가 되기 때문에 연구 및 상업적 용도로 자유롭게 사용이 가능할 뿐만 아니라, C/C++, Python, Java로도 프로그래밍이 가능하며 윈도우, 리눅스, Mac, iOS, 안드로이드 등 다양한 플랫폼을 지원합니다.

OpenCV 설치

OpenCV 라이브러리는 http://opencv.org/에서 다운로드 받을 수 있습니다. 아래의 그림과 같이 자신의 OS 환경에 맞춰서 다운로드 하면 됩니다.

윈도우 환경에서는 exe 파일을 다운로드 받은 후 해당 파일을 클릭하면 아래와 같이 압축을 해제하는 메뉴가 나옵니다. 일반적으로는 C:\에 압축을 해제합니다.

OpenCV는 c:\opencv 경로에 설치가 되는데 먼저 윈도우 환경에서 환경 설정을 하도록 하겠습니다. 여기서 환경 설정이란 해당 파일들이 어디에 존재하는지에 대해서 미리 path를 지정해두는 것입니다. 아래의 그림과 같이 시스템 속성에서 고급 -> 환경변수 -> 시스템 변수 -> Path 에서 편집을 누른 후 변수 값 부분에 아래의 내용을 추가합니다.

c:\opencv\build\x86\vc12\bin;

참고로 위의 경로는 Visual Studio 2013을 기준으로 설명 드린 것이며, Visual Studio 2012는 vc11, Visual Studio 2010은 vc10으로 변경하면 됩니다.

Visual Studio 2010: c:\opencv\build\x86\vc10\bin;
Visual Studio 2012: c:\opencv\build\x86\vc11\bin;

Visual Studio 프로젝트 생성

Visual Studio 2013을 실행한 후 File -> New -> Project를 선택합니다. 프로젝트 생성 창에서 아래의 그림과 같이 Visual C++ 항목에서 Win32 Console 프로젝트를 선택합니다. 프로젝트 이름을 적당히 변경한 후 다음으로 진행합니다.

프로젝트 생성 시 아래의 그림과 같이 빈 프로젝트로 생성합니다.

Visual Studio에서 OpenCV를 이용하기 위해서는 몇가지 기본 설정을 해야합니다. 먼저 Solution Explore에서 프로젝트를 선택한 후 Alt+F7 키를 눌러서 Property Pages를 열어줍니다. 아래의 그림과 같이 Configuration Properties-> C/C++ -> General 항목에서 Additional Include Directories에 다음과 같이 입력합니다. 이러한 설정은 .c 또는 .cpp 파일에서 *.h 와 같은 header file을 include할 때 설정한 디렉터리에서 탐색하도록 설정한 것입니다.

C:\opencv\build\include;

lib 디렉터리를 설정하기 위해서 Linker -> General 항목으로 이동한 후 Additional Library Directories에 다음과 같이 입력합니다. 아래의 설정은 Visual Studio 2013기준이며 2012인 경우에는 vc11, Visual Studio 2010에서는 vc10으로 변경해서 입력해야 합니다.

C:\opencv\build\x86\vc12\lib;

Property Pages에서 Linker -> Input 항목에서 Additional Dependencies에 다음과 같이 입력합니다. 아래의 설정은 OpenCV 2.4.9 버전과 관련된 것이며 lib 파일 이름에 d가 들어간 것은 debug mode를 위한 라이브러리 파일입니다. Visual Studio 에서 Release mode로 동작시키는 경우에는 파일 이름에서 d를 제거하면 됩니다.

opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib

main.cpp 파일 만들기

Visual Studio 2013에서 OpenCV를 사용하기 위한 기본적인 설정은 끝났습니다. 이제 간단한 소스코드의 작성을 통하여 정상적으로 OpenCV가 동작하는지에 대해 테스트해보도록 하겠습니다. Visual Studio의 생성된 프로젝트에 main.cpp 파일을 추가한 후 해당 파일에 다음과 같이 코딩합니다.

#include <opencv\cv.h>
#include <opencv\highgui.h>

int main(void)
{
  IplImage* image = cvLoadImage("C:\\opencv\\build\\doc\\opencv-logo.png");

  cvShowImage("OpenCV", image);
  cvWaitKey(0);

  cvReleaseImage(&image);
  return 0;
}

키보드의 F7키를 눌러서 소스코드를 빌드한 후 Ctrl+F5를 눌러서 실행을 해줍니다. 실행 결과를 보시면 다음과 같이 에러가 발생하는데 이것은 프로젝트 수행 시 dll 파일이 필요한데 이것을 못찾고 있기 때문입니다.

이러한 문제를 해결하기 위해서는 c:\opencv\build\x86\vc12\bin\ 이 경로에 위치하는 .dll 파일들을 현재 프로젝트로 복사하면 됩니다. 아래의 그림과 같이 vcxproj 파일이 있는 곳에 dll을 복사합니다. 또는, .dll 파일들을 다음의 경로에 복사합니다. 해당 경로는 Windows 7 64bits 버전 기준으로 윈도우의 기본 path로 잡혀 있기 때문에 한 번만 dll 파일을 복사해두면 프로젝트를 생성할 때 마다 dll 파일을 복사할 필요가 없게 됩니다. (무식하지만 추천하는 방법입니다.)

c:\Windows\SysWOW64\

다시 Ctrl+F5를 눌러서 실행하면 정상적으로 이미지 화면에 출력됨을 확인할 수 있습니다.

References

  1. http://dsnight.tistory.com/1
  2. http://windstop.tistory.com/34
출처 : wikidocs.net