Library/OpenCV

Visual Studio에서 OpenCV 시작하기

TwinParadox 2018. 3. 11. 22:08
728x90

필자는 예전부터 이미지와 영상 처리에 대해서 관심이 많았다.

영상 처리를 하기 위해서는 OpenCV가 적합하다고 판단을 했고 시간적 여유가 생기기를 기다렸다.

대학교 재학 중에는 학업을 이유로 계속 미뤄오다가, 최근에서야 공부를 시작했는데 책 한 권 없이 기본도 없이 맨땅에 헤딩을 시작한 상태라 허점이 많다.


필자의 블로그에 있는 다른 글들이 질적으로 우수하다고 당당하게 이야기할 수는 없지만, 적어도 OpenCV에 관련한 글들에 비하면 낫다고 이야기할 수 있다. 이 카테고리의 글은 다른 카테고리에 비해 지식의 전달보다는 초보의 입장에서 공부한 것들을 보여주는 용도에 지나지 않을 것이다. 그렇기 때문에 전문적인 설명을 원한다면 이 페이지를 꺼도 좋다고 생각한다.




OpenCV는 무엇인가?

OpenCV가 무엇인지 간략하게 이야기 해볼 필요가 있다. OpenCV는 Open Source Computer Vision Library 이며, 영상 처리가 들어간다 싶으면 빼놓지 않고 포함되는 오픈 소스 라이브러리의 위치에 올라 있다. C/C++에만 국한되는 것이 아니라 C#, Python, Java(Android), Objectiv-C(iOS) 등 사용 범위가 넓어 그 기능만을 잘 이용하면 영상 처리에 있어서는 거의 대부분의 것들을 처리할 수 있다.




영상 처리에 대해서 궁금하다면?

OpenCV는 영상 처리를 대중화시킨 라이브러리다. OpenCV를 사용해봤다는 경험이 영상 처리에 대한 기본적인 이론 숙지를 보장하는 것이 아니다. 관련 내용은 따로 공부를 해야 한다. OpenCV의 공식 문서나 구글링을 통해 블로그와 웹사이트에서 제공하는 것들은 기본 이론보다는 단순 기능 사용에 초점을 둔 것들이 많다. 지금 필자가 OpenCV 관련한 글을 작성하는 것처럼 그저 옮겨놓고 함수를 가져다 쓰는 것에 지나지 않기 때문에 기회가 된다면 KMOOC 같은 온라인 강의나 관련 서적을 참고하는 것이 좋을 것 같다.




OpenCV 공식 사이트로 이동하기




사이트에 가면 Win, Mac, Android 버전 패키지와 깃허브를 이용한 배포가 이루어진다. 버전 선택은 개인의 자유다. 필자는 OpenCV 3.4.1을 받았다.




Docs에서는 튜토리얼과 함께 제공하고 있는 라이브러리에 대한 상세 정보를 다루고 있다. 공식 문서이며, 원문 해독이 가능하다면 자주 사용하게 될 것이다. 몇몇 한국인 능력자가 번역 문서를 제공하고 있거나 준비 중에 있는 것 같다. 


모든 프로젝트에 OpenCV를 사용할 것이 아니기 때문에 생성할 때마다 OpenCV 라이브러리를 추가하는 설정은 살펴보지 않고, 생성한 프로젝트에 OpenCV를 추가하는 방법은 아래 과정을 따라간다. 필자의 OpenCV 폴더 경로는 C:\opencv로, 라이브러리의 설치 경로는 본인이 편한 경로를 선택하면 된다.



프로젝트를 우클릭하여 속성을 눌러주자. 환경은 x64, 구성은 Debug나 Release 아니면 둘 다를 포함하는 모든 구성을 선택한다. 그 후 아래와 같이 프로젝트 속성을 설정해주면 된다.


구성 속성>디버깅>환경




구성 속성>C/C++>일반>추가 포함 디렉터리




구성 속성>링커>일반>추가 라이브러리 디렉터리




구성 속성>링커>입력>추가 종속성




이렇게 라이브러리를 추가하는 작업을 마쳤다면, 아래 소스로 제대로 동작하는지 확인할 필요가 있다.


#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
	Mat img = imread("Twinparadox.png");
	namedWindow("image", WINDOW_NORMAL);
	imshow("image", img);
	waitKey(0);
	return 0;
}



위처럼 추가한 이미지가 뜨면, 정상적으로 작동하는 것이다. 뭔가 잘린 것 같지만, 필자의 시그니쳐 아이콘의 원본 사이즈가 워낙 커서 발생한 문제다. 화면을 갈무리했을 때 이렇게 보이는것일 뿐 프로그램 동작에는 문제가 없는 것을 확인할 수 있다. 정상적으로 작동하는 것을 확인 했으니, 이제부터 OpenCV를 공부하면 된다!




728x90
728x90