> For the complete documentation index, see [llms.txt](https://ykkim.gitbook.io/dlip/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ykkim.gitbook.io/dlip/installation-guide/opencv/opencv-install/opencv-3.4.13-with-vs2019.md).

# OpenCV 3.4.13 with VS2019

## Installing OpenCV 3.4.13 with Visual Studio 2019

OpenCV Download link: <https://opencv.org/releases/>

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-7d8490e11a87beea5f4b30f7c736aafe8c1524d8%2Fimage.png?alt=media)

Opencv 설치 파일 다운로드 >> 설치 파일 압축풀기

**C:\ opencv-3.4.13 폴더** 새롭게 생성 >> 아래 그림과 같이 설치파일 복사

> C:\ opencv-3.4.13 \build, C:\ opencv-3.4.13 \sources\\

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-5afa55f786e26793dd84f29647cebfac25452313%2Fimage.png?alt=media)

### **PATH 환경설정**

**제어판> 시스템 및 보안 > 시스템 > 고급 시스템 설정 – 고급 탭 > 환경변수(N)** 클릭

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-e16048946ffaf4e001471abf2169234566a77437%2Fimage%20\(26\).png?alt=media)

**‘시스템 변수’** 항목에 있는 변수 명 중 ‘\*\*Path’\*\*를 찾아 **편집**

![image](https://user-images.githubusercontent.com/38373000/156104553-0419d61a-4eb9-4a1b-864d-33fa093108a7.png)

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-5fed087f64b533390ad3892c43b701da668d4d8d%2Fimage.png?alt=media)

**새로 만들기** > **찾아보기** > **C:\opencv-3.4.13\build\x64\vc15\bin 선택**

> OpenCV dll 파일 경로 설정과정임

![image](https://user-images.githubusercontent.com/38373000/156104789-1ef8b2d1-1b7a-432b-832a-540e150ac75c.png)

Path 설정 완료되면 컴퓨터 재부팅

## OpenCV 프로젝트 속성시트(Property sheet)만들기

Visual Studio 201x 실행 후

* 방법 1) **새 프로젝트 만들기** **> 빈 프로젝트**

![image](https://user-images.githubusercontent.com/38373000/156105330-702e389a-9bd0-46bd-a617-2510e68b487b.png)

* 방법 2) **파일> 새로 만들기> 프로젝트 선택**

\*\*빈 프로젝트: 프로젝트 이름 \*\* `OpenCVprop` 입력 > **만들기**

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-bc5f5a64bdb57460025e8983db33e7d9e6a362bd%2Fimage.png?alt=media)

###

### **Debug x64 Property Sheet 만들기**

**메뉴: 보기>다른 창>속성 관리자** 선택

**속성 관리자 창 > OpenCVprop > Debug|x64** 위에 RightClick.

\*\*새 프로젝트 속성 시트 추가 > 이름 \*\*: `opencv-3.4.13_debug_x64.props` 으로 지정 > **추가**

> 반드시 이름에 .props까지 기재할 것
>
> Debug | x64 에서 설정.

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-6b328bca8ad9820133207088087e96703eea0de9%2Fimage.png?alt=media)

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-bb0c0bf3f2de6c423e5711818f771dedda351e54%2Fimage.png?alt=media)

***

\*\*속성관리자 창: \*\* **Debug | x64** > `opencv-3.4.13_debug_x64` double click

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-0c1f608901fff9d767503eba360404c2c57ccbbe%2Fimage.png?alt=media)

**\[Opencv 헤더 (include) 디렉터리 추가]**

**공용 속성 > C/C++ > 일반 > 추가 포함 디렉터리 > 편집**

![image](https://user-images.githubusercontent.com/38373000/156106499-3fc82297-8d5f-4e6b-9cf1-0de4c10fda62.png)

**> 추가 포함 디렉터리**> **줄추가** : *아래 경로들을 순서에 맞게 추가* > **확인**

* C:\opencv-3.4.13\build\include
* C:\opencv-3.4.13\build\include\opencv
* C:\opencv-3.4.13\build\include\opencv2

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-552bdfcbb3f5eac6dae06ad91973c8798aefffc1%2Fimage.png?alt=media)

**\[ OpenCV lib 디렉터리 추가]**

**공용 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리 > 편집** > **추가 라이브러리 디렉터리**

* `C:\opencv-3.4.13\build\x64\vc15\lib` 추가

![image](https://user-images.githubusercontent.com/38373000/156107129-4f08152a-678d-41b1-a6e7-686cdc5fe966.png) ![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-521245577172e18dc28154e8186deee94f169e1b%2Fimage.png?alt=media)

**\[ OpenCV lib 파일 추가]**

**공용 속성> 링커 > 입력 > 추가 종속성>** **편집**

* `opencv_world3413d.lib` 경로 추가

> debug 모드에서는 'd' (xxx3413d.lib) 로 표시된 파일을 추가

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-dd8ec8d932f70d3018a772242c00393f1b270d3a%2Fimage.png?alt=media)

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-bbb03541ad28356e99995afb9235ab79393026bb%2Fimage.png?alt=media)

**(중요)**

위 설정 완료 후 반드시 `opencv-3.4.13_debug_x64` 저장

![image](https://user-images.githubusercontent.com/38373000/156107897-60ad7691-cc4b-48de-86d1-acee1b70a332.png)

### **Release x64 Property Sheet 만들기**

**속성 관리자 창 > OpenCVprop** > **Release**|**x64** : RightClick.

**새 프로젝트 속성 시트 추가 > 이름**: `opencv-3.4.13_release_x64.props`으로 지정 후 추가

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-881a083c3350bc05efdf9e622b0d39f5695ed9b5%2Fimage.png?alt=media)

위에 설명한 **Debug x64 Property Sheet** 만들기 과정과 유사하며, 아래 경로를 추가하여 반복

**공용 속성 > C/C++ > 일반 > 추가 포함 디렉터리 >** 경로추가

* C:\opencv-3.4.13\build\include
* C:\opencv-3.4.13\build\include\opencv
* C:\opencv-3.4.13\build\include\opencv2

**공용 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리** > 경로 추가

* C:\opencv-3.4.13\build\x64\vc15\lib

**공용 속성> 링커 > 입력 > 추가 종속성>** 경로추가

* opencv\_world3413.lib

> release에서는 'opencv\_world3413.lib' 로 해야함. ('\*\*\*d.lib)는 아님!!. ', debug 에서만 'opencv\_world3413d.lib' 로 설정해야 함

**(중요)**

위 설정 완료 후 반드시 `opencv-3.4.13_release_x64` 저장

## OpenCV VS프로젝트 만들기

Visual Studio 2019 실행 후 '**파일> 새로 만들기> 프로젝트 선택**

**Visual C++ > 빈 프로젝트** : 프로젝트 이름 **opencv\_simple\_demo** 입력 후 만들기

### Project Property Sheet 설정

**메뉴>보기>다른 창>속성 관리자** 선택

**속성 관리자 창 > 프로젝트명** > **Debugx64** : RightClick.

**'기존 속성 시트 추가**' 선택 후 앞에서 저장된 **Property Sheet** " **opencv-3.4.13\_debug\_x64.props "** 를 추가

동일한 과정 **Release|x64** 항목에서 **Property Sheet** " **opencv-3.4.13\_release\_x64.props "** 를 추가

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-7eebf18e0fde1cfc5884da2362c73adddeae6da3%2Fimage.png?alt=media)

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-6b0568a188acd0e7d25d1855e4328209f865a156%2Fimage.png?alt=media)

### 소스파일 만들기

**보기 – 솔루션탐색기 > \[프로젝트] > 소스 파일 > 추가 > 새항목** click

C++파일(cpp) 선택 후 **opencv\_simple\_demo.cpp 생성**

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-27f1c13cc87c2dc324aaa500ded0213cf0429c5a%2Fimage.png?alt=media)

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-80b7b198b904c7aff9049a3a157d9e2d7dd70102%2Fimage.png?alt=media)

구성 관리자를 **Debug x64**로 설정 후 아래 코드를 입력.

디버깅하지 않고 시작 (CTRL+F5)

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-fb5a48a5a746d942c319172d3316aa67e817545b%2Fimage.png?alt=media)

**Demo 코드 1**: Image File Read

* 이미지 파일 다운로드: [Click here](https://github.com/ykkimhgu/DLIP-src/blob/main/tutorial-install/testImage.JPG)

> 이미지 파일과 소스코드가 동일 폴더에 있어야 함!!

```cpp
#include <opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

//* @function main
int main()
{
Mat src;

src = imread("testImage.jpg", 1);/// Load an image

if (src.empty())/// Load image check
{
cout << "File Read Failed : src is empty" << endl;
waitKey(0);
}

/// Create a window to display results
namedWindow("DemoWIndow", CV_WINDOW_AUTOSIZE); //CV_WINDOW_AUTOSIZE(1) :Fixed Window, 0: Unfixed window

if (!src.empty())imshow("DemoWIndow", src); // Show image

waitKey(0);//Pause the program
return 0;
}
```

Expected Output

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-f37b41c3f5e4de871c778a0299ec7be7884bee80%2Fimage.png?alt=media)

***

**Demo 코드 2:** Camera Open and capture

```cpp
#include "opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char* argv[])
{
    VideoCapture cap(0); // open the video camera no. 0

    if (!cap.isOpened())  // if not success, exit program
    {
        cout << "Cannot open the video cam" << endl;
        return -1;
    }
   namedWindow("MyVideo",CV_WINDOW_AUTOSIZE); //create a window called "MyVideo"

    while (1)
    {
        Mat frame;
        bool bSuccess = cap.read(frame); // read a new frame from video
         if (!bSuccess) //if not success, break loop
        {
             cout << "Cannot read a frame from video stream" << endl;
             break;
        }
        imshow("MyVideo", frame); //show the frame in "MyVideo" window

        if (waitKey(30) == 27) //wait for 'esc' key press for 30ms. If 'esc' key is pressed, break loop
       {
            cout << "esc key is pressed by user" << endl;
            break; 
       }
    }
    return 0;
}
```

Expected Output

![](https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-d5fe6757f3e7f5453883f81256122dff4646a623%2Fimage.png?alt=media)
