DY N DY

open cv 설치 및 세팅 본문

PARK/영상처리 관련

open cv 설치 및 세팅

손세지 2016. 9. 20. 00:45

VS 2015

3.1 버전 기준


open cv 설치


1. open cv를 다운받는다. 

http://opencv.org/downloads.html

2016년 9월 기준 3.1이 최신버전(2 버전대를 제외한)

100MB나 된다. 30초 내외로 걸리는 것 같다. 


2. 압축을 풀어준다.(설치)

개인적으로는 C나 D 바로 아래에 풀어주는게 편한 것 같다. 

C:\opencv에 압축을 풀어주었다. 


설치는 완료. 

open cv 세팅


1. 추가 포함 디렉터리 설정

프로젝트 오른쪽 클릭 후 속성 클릭


구성이나 플랫폼은 상황에 맞게 하면 된다. 여기서는 테스트할 겸 디버깅을 할 것이기 때문에 debug로, 

화면에는 win32로 나왔지만 x64플랫폼을 만들어서 바꿔주었다. 

C/C++의 추가 포함 디렉터리에 해당 디렉터리를 추가해 준다. 

1. 압축해제 폴더\opencv\build\include

2. 압축해제 폴더\opencv\build\include\opencv

3. 압축해제 폴더\opencv\build\include\opencv2


2. 추가 라이브러리 디렉터리

이번에는 링커 - 일반 탭에서 추가 라이브러리 디렉터리를 추가한다.


여기서 주의할 점은 VS가 2015라는 것이다. VS와 opencv를 맞게 세팅해줘야 하는데 

VS 2010은 vc10

VS 2012는 vc11

VS 2013은 vc12

VS 2015는 vc14이다. 


2.4.xx버전은 vc14를 지원하지 않아 3.1버전을 설치하게 되었다. 


3. 추가 종속성 추가

이번에는 링커 - 입력 탭에서 추가 종속성에 해당하는 라이브러리를 추가해준다. 

2.4.xx버전의 경우 추가해야 할 라이브러리가 상당히 많았으나 3.1의 경우 Release냐 Debug냐에 따라 추가해야 할 라이브러리가 각각 1개뿐이다. 

opencv_world310d.lib



아래는 2.4.13버전을 debug환경에서 사용할 때 추가해야 할 라이브러리.(release에서는 2413뒤의 d를 전부 빼면 된다. - 2413은 2.4.13버전)

opencv_calib3d2413d.lib

opencv_contrib2413d.lib

opencv_core2413d.lib

opencv_features2d2413d.lib

opencv_flann2413d.lib

opencv_gpu2413d.lib

opencv_highgui2413d.lib

opencv_imgproc2413d.lib

opencv_legacy2413d.lib

opencv_ml2413d.lib

opencv_nonfree2413d.lib

opencv_legacy2411.lib

opencv_objdetect2413d.lib

opencv_ocl2413d.lib

opencv_photo2413d.lib

opencv_stitching2413d.lib

opencv_superres2413d.lib

opencv_ts2413d.lib

opencv_video2413d.lib

opencv_videostab2413d.lib


# 추가로 C++ 11이상이라면 C/C++ 전처리기에 

_CRT_SECURE_NO_WARNINGS

추가해준다. 

세팅 완료. 


open cv 테스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
int main(int argc, char** argv)
{
    if (argc != 2)
    {
        cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
        return -1;
    }
 
    Mat image;
    image = imread(argv[1], IMREAD_COLOR); // Read the file
 
    if (!image.data) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }
 
    namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
    imshow("Display window", image); // Show our image inside it.
 
    waitKey(0); // Wait for a keystroke in the window
    return 0;
}
cs
위의 테스트 코드는

http://docs.opencv.org/2.4/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to

open cv 페이지의 tutorial에서 가져왔다. 


빌드한 후 에러가 없으면 실행해본다. 

dll을 찾지 못해서 발생하는 에러로 시스템 디렉터리에 해당하는 dll을 넣어 주어도 되고 

프로젝트 폴더 내에 넣어 주어도 된다. 

dll은 설치폴더\opencv\build\x64\vc14\bin 내에 있다. 

테스트 할 때는 opencv_world310d.dll을 프로젝트 폴더 내에 넣어 테스트했더니 정상적으로 동작하였다. 

비주얼 스튜디오 프로젝트 폴더\Projects\opencv test\opencv test 내에 넣었다. 

이 프로그램은 명령인수를 넣어줘야 하니 귀찮으므로. (커맨드 창에서 하거나 프로젝트 속성 - 구성속성 - 디버깅에서 명령인수를 넣어주어도 된다.)

실제로 그림파일을 가지고 있다면 바로 확인할 수 있는 소스로 테스트를 해보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
int main()
{
    Mat image;
    image = imread("test.jpg", IMREAD_COLOR); // Read the file
 
    if (!image.data) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }
 
    namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
    imshow("Display window", image); // Show our image inside it.
 
    waitKey(0); // Wait for a keystroke in the window
    return 0;
}
cs

그림파일을 dll을 넣었던 프로젝트 폴더 내에 넣고 읽어와서 바로 보여준다. 


여기까지 됬다면 opencv 기본 세팅은 완료된 것이다.