NeoProgrammer's Digital Image Processing

비주얼 스튜디오 OpenCV 라이브러리 설치 본문

C++/1. Visual Studio openCV 기본 세팅

비주얼 스튜디오 OpenCV 라이브러리 설치

NeoPgmr. 2019. 12. 18. 11:11

Visual Studio에서는 opencv를 사용하기 위해 따로 경로 설정이 필요

 

■ 작업 환경

visual studio 2017

opencv 4.1.1

 

    1. OpenCV 4.x 설치


OpenCV는 현재 최신 버전이 4.1.2

항상 새로운 버전보다 전 단계를 설치하는 것이 관련 자료를 찾는 것이 좀 더 수월하기 때문에 4.1.1로 설치

 

Opencv 다운로드 링크

https://opencv.org/releases/

 

Releases

 

opencv.org

 

위 사이트에서 releases에 따라 설치 가능

특정한 버전이 필요할 경우 버전에 맞게 설치하는 것을 추천

 

 

opencv 설치 환경 OS 구분

windows를 선택하면 .exe 파일을 다운로드

 

 

opencv 설치 경로 설정

exe 파일을 실행하면 처음에 opencv 폴더가 설치되는 경로 위치를 지정

C:\
위치에 설치하는 것을 추천


 

    2. 프로젝트 속성 설정


opencv를 사용하기 위한 작업으로 총 5가지가 필요

프로젝트를 생성할 때마다 설정해주는 번거로운 작업이지만, 가장 쉽고 간편

솔직히 이 외에 방법이 있는지 잘 모르겠다 (ㅡ,.ㅡ);;

 

■ 설정 순서

1. opencv include 폴더 디렉토리 추가 (모든 구성)

2. build 폴더의 lib 디렉토리 추가 (모든 구성)

3. Debug lib 파일 추가 (Debug)

4. release lib 파일 추가 (Release)

5. dll 파일 경로 환경변수 추가 (선택)

 

모든 구성은 Debug와 Release 두 가지 구성에 모두 추가

1, 2 번은 모든 구성에 경로를 추가

3, 4 번은 각 구성 모드에 추가

5번의 경우 4번까지 정상적으로 완료했음에도 불구

opencv 4.x dll이 없어 완료할 수 없다.

라는 에러메세지가 나올 경우 추가로 작업

 

대충 작업 순서는 위와 같고, 모든 구성이니 debug니, release니 잘 모르겠으니 자세한 내용은 아래에서 설명

 

■ opencv include 폴더 디렉토리 추가 (모든 구성)

빈 프로젝트를 생성하고, 빈 C++코드 파일을 정상적으로 생성한 다음

상단의 프로젝트 탭에서 맨 아래 쪽 속성을 클릭

프로젝트 위치

 

 

프로젝트 속성 창을 열면 아래와 같은 창 출력

프로젝트 속성 페이지 C/C++

여기서 노란색 박스로 표시된 부분이 앞에서 말한 구성과 디렉토리를 추가

우선 구성을 모든 구성으로 되어있는지 확인

 

플랫폼은 x64, x86으로 32bit, 64bit을 선택하는 란인데 모든 플랫폼으로 작업 가능

단, 본인이 설치한 플랫폼에 맞게 설치하는 것이 가장 안전

 

여기서 왼쪽 목록에서 C/C++의 추가 포함 디렉토리에 C:\에 설치한 opencv/build/include 경로를 추가

C:\opencv\build\include

그냥 붙여 넣어도 되고, 클릭하면 우측에 드롭 다운이 생기는데 편집을 눌러 추가

추가 포함 디렉토리 편집 창 입력 전
추가 포함 디렉토리 편집 창 입력 후

위와 동일하게 항목을 확인하고 경로를 추가해준뒤 확인누르고 확인 클릭

다시 속성 페이지를 확인하면 경로가 정상적으로 추가된 것을 확인 가능

 

 

프로젝트 속성 페이지 추가 후

 

build 폴더의 lib 디렉토리 추가 (모든 구성)

프로젝트 속성 페이지 링커

왼쪽 링커 (링커 하위 목록의 일반도 O.K.) 탭으로 이동한 후

추가 라이브러리 디렉토리에 lib 폴더의 경로를 추가.

C:\opencv\build\x64\vc15\lib

경로를 동일하게 경로 추가

 

 

프로젝트 속성 페이지 링커 경로 추가 후

여기까지 모든 구성으로 작업을 완료한 후 '적용'을 눌러 저장

 

■ Debug lib 파일 추가 (Debug)

프로젝트 속성 페이지 Debug 구성

이번엔 구성을 Debug로 변경해주고 링커>입력 탭에서 추가 종속성 값을 입력

링커의 추가 라이브러리 디렉토리를 추가해준 경로로 들어가보면 두 가지 lib파일이 존재

 

opencv_world411.lib

opencv_world411d.lib

 

411이 버전을 나타내고 숫자 뒤 'd'가 debug 용이라고 생각

현재 debug 구성으로 값을 추가해주어야 하니 opencv_world411d.lib 파일을 값 추가

 

 

프로젝트 속성 페이지 Debug 종속석 값 추가

 

■ Release lib 파일 추가 (Release)

이제 구성을 Release로 변경해주고 추가 종속성에 opencv_world411.lib 파일 값을 추가

 

프로젝트 속성 페이지 release 종속성 값 추가

여기까지 값을 추가해주고 적용을 누른 후 확인 클릭


 

    3. 예제 코드 확인


간단한 코드 작성 후 동작이 되는지 확인

#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <cstdio>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat ref_img = imread("lena_std.png", IMREAD_COLOR);

	imshow("lena", ref_img);
	waitKey(0);
	return 0;
}

이미지는 코드가 있는 경로에 대충 아무거나 넣고 영상 출력

 

 

lena_std 출력 결과

이상이 없다면 위와 같이 콘솔창과 함께 영상이 출력


 

    4. 환경변수 추가


dll이 없어 컴파일되지 않거나, abort() has been...과 같은 스레드 에러 경고가 나는 경우 발생

스레드 에러는 처음 Debug와 Release를 구분하지않고 모든 구성으로 종속성 입력값을 넣어주는 경우 발생 가능

Debug와 Release를 구분하여 lib 파일을 종속성 추가해주고 나서 에러 발생이 없어지는 것을 확인

이 외 dll을 찾지 못하는 에러의 경우 아래 환경변수 추가 작업을 진행해본 다음 다시 한 번 확인할 것

 

■ dll 파일 경로 환경변수 추가 (선택)

 

dll 파일의 경로: C:\opencv\build\x64\vc15\bin

 

환경변수 추가하기 위한 경로: 내 컴퓨터 -> 속성 -> 고급 시스템 설정 -> 환경 변수

환경 변수 설정 창

위와 같은 창이 출력 (windows 10 기준)

 

□ dll 경로를 변수로 추가

우선 시스템 변수(S) -> 새로 만들기

 

변수 이름: OPENCV_DIR

변수 값: C:\opencv\build

 

□ dll 경로 환경 변수 Path에 추가

사용자 변수(U) -> Path -> 편집

환경 변수 path 추가 창

위와 같은 창에서 우측 상단의 새로 만들기 클릭

앞서 정의한 OPENCV_DIR 앞 뒤 %를 붙여 경로 변수를 추가해주고 뒤에 나머지 dll 경로를 입력

%OPENCV_DIR%\x64\vc15\bin

위 값을 추가

 

꼭 위와 같이 경로 변수를 만들어 추가하지 않고

dll 파일의 경로: C:\opencv\build\x64\vc15\bin

를 한 번에 Path에 추가해주어도 문제 없음

변수 이름과 값은 본인 편의에 의해서 변경 가능

 

dll 에러는 더 이상 나타나지 않지만, 사용자의 환경마다 다를 수 있기 때문에

에러가 잡히지 않을 경우 다른 곳을 참조


Visual Studio OpenCV 세팅 완료


 

Comments