본문 바로가기
개발 관련 이야기

Window - 환경변수 설정 없이 Visual Studio에서 OpenCV 사용하기

by 꿈틀쓰 2022. 8. 4.

Visual Studio에서 OpenCV를 사용하려고 인터넷을 찾아보면 대부분 PC의 환경변수를 설정해야 한다고 나온다.

그럼 그 프로젝트를 건네받는 사람은 무조건 환경변수를 설정해야 프로그램을 컴파일할 수 있다.

그래서 환경변수 설정 없이 Visual Studio에서 OpenCV를 사용하는 법을 알아봤다.

 

**여기서는 하는 방법만 보여주기 때문에 opencv경로를 그냥 다운받은 자리 그대로 두었는데, opencv가 안깔려 있는 다른 기기에서도 작업하려고 하시는 분은 opencv 설치 경로를 프로젝트 내부에 두시면 됩니다.

 

0. https://opencv.org/releases/에서 OpenCV 원하는 버전을 다운 받는다. 이때 Sources 로 받지 말고 Windows로 받으셔야 합니다. Sources는 말그대로 소스만 받고 빌드를 위한 라이브러리 파일들이 없습니다.

Windows를 선택하면 실행파일을 다운받는데, 이를 실행하면 원하는 위치에 압축을 풀어준다.
폴더 내부는 크게 build와 sources로 나눠져있다.

1. 프로젝트 생성

신규 프로젝트 생성

 

2. 디버깅 옵션을 Release / x64로 설정한다.

디버깅 옵션: Release / x64

 

3. 프로젝트 속성 값 변경

프로젝트를 선택해서 오른쪽 마우스 클릭 > 속성으로 들어가 다음 단계를 수행한다.

 

3-1. C/C++ - 일반

프로젝트 속성 - C/C++ - 일반

추가 포함 디렉터리에 include 폴더 경로를 추가해준다. opencv경로/build/include파일 경로를 추가한다.

3-2. 링커 - 일반

프로젝트 속성 - 링커 - 일반

추가 라이브러리 디렉터리에 lib 폴더 경로를 추가해준다. opencv경로/build/x64/vc15/lib파일 경로를 추가한다.

3-3. 링커 - 입력

추가 종속성에 opencv_world440.lib, opencv_world440d.lib파일을 추가해준다. 

링커 - 일반에서 추가했던 lib 경로 아래에 2개의 lib 파일이 있다.
파일명 그대로 추가한다.

그대로 적용하고 소스 에디터로 돌아온다.

 

4. "#include <opencv2"를 입력해보면, 제대로 설정되었다는 것을 알 수 있다.

opencv에 있는 lena.jpg를 소스 폴더 내에 위치하고 다음과 같이 테스트 소스를 작성하였다.

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
	cout << "Hello, World!" << endl;

	Mat img;			// 이미지를 저장하는 객체
	img = imread("lena.jpg");	// 이미지를 읽어들인다.
	imshow("OpenCV Test", img);	// 이미지를 윈도우에 띄워 보여준다.
	waitKey(0);			// 아무키를 누를 때까지 윈도우가 사라지지 않게 한다.
	destroyAllWindows();		// 모든 윈도우를 없앤다.
	
	return 0;
}

이 상태에서 Ctrl + F5를 눌러서 실행하자 다음과 같은 에러메시지가 나온다.

opencv_world440.dll이 없어서 실행할 수 없다고 한다.

5. 다시 opencv 다운로드 경로로 가본다. opencv경로/build/x64/vc15/bin에 가보면 dll파일 2개가 보인다.

이 두개를 복사해서 실행파일이 있는 곳(프로젝트경로/x64/Release)에 붙여넣기 해준다.

프로젝트명.exe가 있는 폴더에 붙여넣기

6. 다시 실행하면,

lena.jpg가 보여진다.

잘 된다.

댓글