엔지니어스 - Engineeus

[Windows] OpenCV 설치 (3.4.0) 본문

Autonomous Tech./Installation

[Windows] OpenCV 설치 (3.4.0)

Engineeus 2019. 9. 29. 20:08
728x90

start()

{


  • 환경

- OS : Windows 10

- IDE : Visual Studio IDE

 

  • 설치 할 것

- OpenCV

 


  • OpenCV 설치

1. 다운로드

 

- 아래 공식 홈페이지(1번 다운로드) 에서 3.4.x 버전으로 받으면 되지만 저는 좀 오래 된 버전이 검증이 많이 되었다고 생각 하기에  공홈에서 3.4.0인 (2번 다운로드)로 들어가 다운 받았습니다.

1. 다운로드 링크 (공식 홈페이지) : https://opencv.org/releases/

2. 다운로드 링크 : https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.4.0/opencv-3.4.0-vc14_vc15.exe/download

 

- 다운로드 후 임의의 폴더에 압축을 풀어 놓습니다.

- 해당 폴더에 아래와 같이 'opencv'라는 폴더가 생겼습니다.

 

- 저는 이 opencv 폴더를 C드라이브에 옮겨줬습니다.

- 최종 경로 : C:\opencv


2. 시스템 환경 변수 설정

    - '시작-찾기' 에서 '시스템 환경 변수 편집'을 친다.

 

- [시스템 변수] - [Path] 를 선택하고 편집을 실행한다.

 

- [새로 만들기] 를 실행하여 OpenCV 설치된 폴더의 'DLL' 이 있는 경로를 추가해준다.

(ex : opencv 가 설치된 폴더 \build\x64\vc14\bin)

 

- 저는 나중에 좀더 편하기 위해 한가지 설정을 더 했습니다. 일반적인 분들은 이부분 건너 뛰셔도 되고 해도 되고 상관 없습니다.

- 시스템 변수 - 새로 만들기 - 변수 이름 : 'OPENCV_DIR' - 변수 값 : 'C:\opencv\build'


3. Visual Studio 환경 설정

- 테스트를 하기 위해 Visual Studio IDE를 이용 한다.

 

- [새프로젝트 만들기] - [빈프로젝트] - 'OpenCV_Test'라는 이름으로 설정

 

- 'Ctrl + Shift + A'를 클릭 하여 cpp파일 생성

 

- 프로젝트 - 속성

- 경로 추가 방법

- 경로 추가 시에는 아래와 같이 ...표시를 클릭 하여 주소를 추가 한다.

- 아래와 같이 추가가 된다.

- 위와 같은 방식으로 아래 와 같이 모두 추가를 한다.

 

Debug 모드 x64

1) [C/C++] - [일반] - [추가 포함 디렉터리] 에서 (opencv 가 설치된 폴더\build\include) 의 경로를 추가한다.

2) [링커] - [일반] - [추가 라이브러리 디렉토리] 에서 (opencv 가 설치된 폴더 \build\x64\vc14\lib) 의 경로를 추가한다.

3) [링커] - [입력] - [추가 종속성] 에서 'opencv_world340d.lib' 를 추가한다.

 

Release 모드 x64

1) [C/C++] - [일반] - [추가 포함 디렉터리] 에서 (opencv 가 설치된 폴더\build\include) 의 경로를 추가한다.

2)  [링커] - [일반] - [추가 라이브러리 디렉토리] 에서 (opencv 가 설치된 폴더 \build\x64\vc14\lib) 의 경로를 추가한다.

3) [링커] - [입력] - [추가 종속성] 에서 'opencv_world340.lib' 를 추가한다.


※OpenCV 버전마다 위 3번은 다릅니다. [C:\opencv\build\x64\vc14\lib]에 들어가 보면 'opencv_world***.lib'와 'opencv_world***d.lib'가 있으니 확인 해보시고 알맞게 적으시면 됩니다.

 


4. Test

- 노트북으로 (데스크탑 일 시 웹캠이 있는 경우) 아래 코드를 돌려 보면 영상을 보실 수 있을 겁니다. 그러면 성공!

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


using namespace cv;
using namespace std;


int main()
{
	Mat img_color;

	//비디오 캡쳐 초기화
	VideoCapture cap(0);
	if (!cap.isOpened()) {
		cerr << "에러 - 카메라를 열 수 없습니다.\n";
		return -1;
	}


	while (1)
	{
		// 카메라로부터 캡쳐한 영상을 frame에 저장합니다.
		cap.read(img_color);
		if (img_color.empty()) {
			cerr << "빈 영상이 캡쳐되었습니다.\n";
			break;
		}

		// 영상을 화면에 보여줍니다. 
		imshow("Color", img_color);


		// ESC 키를 입력하면 루프가 종료됩니다. 

		if (waitKey(25) >= 0)
			break;
	}


	return 0;
}

return 0;

}

 

Comments