Visual Studio 2017 에서 C++ 을 이용해 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 를 사용해도 상관은 없더군요..)
내컴퓨터 속성에서 고급 시스템 설정으로 진입
환경변수 클릭.
환경 변수에서 상단의 사용자 변수의 Path 선택하고 하단의 시스템 변수에서 Path 를 선택하고 편집을 클릭합니다.
앞서 압축을 푼 폴더에서 .....\build\x64\vc15\bin 경로를 추가합니다.
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<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 가 적용된 이미지 출력을 확인할 수 있습니다.
'Computer Vision > OpenCV' 카테고리의 다른 글
(OpenCV) Mat , IplImage 에서의 depth의 개념 (0) | 2018.03.06 |
---|---|
OpenCV 강좌 (OpenCVSharp 이용) - 링크 (0) | 2018.02.20 |