728x90
728x170

Visual Studio 2017 에서 C++ 을 이용해 OpenCV 를 활용해 보려고 합니다.

이를 위해선 먼저 환경 설정이 필요합니다.

 

1. OpenCV 다운로드

아래 링크에서 파일을 다운로드 받습니다. (2018-02-27 기준 최신버전 경로)

https://sourceforge.net/projects/opencvlibrary/files/latest/download

그외 최신버전은 아래 링크에서 확인합니다.

https://sourceforge.net/projects/opencvlibrary/

아래 처럼 다운로드가 완료되면 실행합니다.

적당한곳에 압축을 풉니다.

압축을 풀면 아래와 같이 구성 되어있습니다.

환경설정에 필요한건 build 폴더 입니다.

Visual Studio 에서 이용할 폴더는 build 에서 include, x64 폴더입니다.

x64 의 vc15 가 visual studio 2017 에 대응됩니다. .

(vc14 를 사용해도 상관은 없더군요..)

 

2. 환경 변수 설정

내컴퓨터 속성에서 고급 시스템 설정으로 진입

환경변수 클릭.

환경 변수에서 상단의 사용자 변수의 Path 선택하고 하단의 시스템 변수에서 Path 를 선택하고 편집을 클릭합니다.

앞서 압축을 푼 폴더에서 .....\build\x64\vc15\bin 경로를 추가합니다.

 

3. 프로젝트 구성

C++ 프로젝트를 만듭니다.

새프로젝트 추가에서 아래처럼 Visual C++ 에서 빈프로젝트를 하나 생성합니다.

프로젝트 속성에서 본겨적인 환경설정 작업이 시작됩니다.

먼저 상단의 구성은 '모든구성' 을 선택하고 플랫폼은 'x64' 로 선택합니다.

링커 위에 'C/C++' 항목이 보여야합니다.

이를 위해선 프로젝트에서 새 항목 추가를 선택하여 아래처럼 cpp 파일을 하나 만들어 줍니다.

다시 프로젝트 속성에 진입하면 아래 처럼 C/C++ 카테고리가 추가된 걸 확인 할수 있습니다.

먼저 추가된 C/C++ 항목을 펼쳐서 일반 항목을 선택합니다.

여기서 추가 포함 디렉터리 에서 우측에 화살표를 클릭해 편집을 클릭합니다.

아래와 같은 팝업 창이 하나 뜹니다. 여기서 추가버튼(+폴더모양)을 클릭하면 아래처럼 입력할수 있는 칸이 나오는데

여기서 우측의 ... 버튼을 클릭합니다.

...\build\include 경로를 선택하여 추가합니다.

추가가 되면 추가 포함 디렉터리에 아래처럼 표시가 됩니다.

 

이번에는 링커 항목에서 일반 을 선택합니다.

추가 라이브러리 디렉터리 에서 우측 끝 화살표를 클릭해 편집을 선택합니다.

아래와 같은 팝업창이 하나뜨고

아래 경로를 선택 및 추가합니다.

...\build\x64\vc15\lib

추가가 되면 추가 라이브러리디렉터리에 아래처럼 표시가 됩니다.

이제 링커에서 입력 항목을 선택합니다.

추가 종속성에서 편집을 선택합니다.

여기서 아래 두 lib 파일을 넣어줍니다.

위 두 파일 명을 아래 경로에의파일 명입니다.

마지막에 d 가 붙은건 Debug 때 사용되고 그렇지 않은건 Release 때 사용됩니다.

추가가 완료되면 아래처럼 추가한 항목이 추가 종속성 앞쪽에 보여집니다.

확인을 눌러 프로젝트 속성창을 빠져나옵니다.

이제 아래 그림 처럼 x64 로 두고 디버깅을 시작하면 됩니다.

이미지 하나를 canny 로직을 적용해 봅니다.

먼저 사진 파일 하나를 명칭을 image 로하여 프로젝트 폴더에 옮겨 놓습니다.

제가 사용한 이미지는 아래 이미지 입니다.

소스코드

#include<opencv2/opencv.hpp>
#include<iostream>
#include<conio.h>
int main() {
 cv::Mat imgOriginal;
 cv::Mat imgGrayscale;
 cv::Mat imgBlurred;
 cv::Mat imgCanny;

 imgOriginal = cv::imread("image.png");
 if (imgOriginal.empty()) {
  std::cout << "error: image not read from file\n\n";
  _getch();
  return(0);
 }

 cv::cvtColor(imgOriginal, imgGrayscale, CV_BGR2GRAY);

 cv::GaussianBlur(imgGrayscale,
  imgBlurred,
  cv::Size(5, 5),
  1.5);
 cv::Canny(imgBlurred,
  imgCanny,
  82,
  164);

 cv::namedWindow("imgOriginal", CV_WINDOW_AUTOSIZE);
 cv::namedWindow("imgCanny", CV_WINDOW_AUTOSIZE);

 cv::imshow("imgOriginal", imgOriginal);
 cv::imshow("imgCanny", imgCanny);

 cv::waitKey(0);

 return(0);
}

실행해 보면 아래처럼 Canny 가 적용된 이미지 출력을 확인할 수 있습니다.

 

 

728x90
그리드형
Posted by kjun
,