본문 바로가기

프로그래밍 강좌/C++ - OpenCV

[OpenCV][C++] 최신 OpenCV 설치하기 (쉬운방법), visual studio 2019 2022 버전 설치 확인 cmake 환경설정 library 라이브러리 세팅

 

영상처리, 컴퓨터 비전을 공부하시는 분들은

OpenCV에 대해 들어보셨을 꺼에요.

이번에는 최신 버전 OpenCV를 설치하고 사용하는 방법에 대해 알아볼께요.

OpenCV 는 현재 4.8.0 버전이 나와 있습니다. 하지만 저는 바로 전 버전인 4.7.0 버전으로 설명드릴께요. visual studio 2022 버전에 OpenCV 4.8.0을 설치해봤는데, 설치 방법은 완전 동일합니다. 

https://blog.naver.com/dorergiverny/223142569909

 

[OpenCV][C++] 최신 버전 4.8.0 Release 업데이트 소식 - 윈도우 Windows 설치하기 Github Cmake 이용

오늘은 기쁜 마음에 신규 버전인 4.8.0 버전 Release 소식을 전해드리고자 합니다. 바로 어제 github에 M...

blog.naver.com

만약 CMake를 통해 소스를 직접 빌드하고 싶으시면 아래 링크를 확인해보세요.

https://blog.naver.com/dorergiverny/223057902921

 

[OpenCV][C++] 최신 OpenCV 설치하기 ( CMake 사용하여 소스 빌드하기), visual studio 2019 contrib 2022 환경 설

OpenCV를 설치하여 사용하는 방법은 두가지가 있는데, 아래와 같은 차이점이 있습니다. 설치 실행 파일...

blog.naver.com

 

OpenCV 란?

OpenCV(Open source Computer Vision Library)는 지금 이순간에도 활발히 개발되고 있는 약 2,500 여개가 넘는 최신 컴퓨터 비전 알고리즘과 머신 러닝 알고리즘을 포함하고 있는 라이브러리 입니다.

기본적인 영상 파일 입/출력, 영상의 화질 향상, 객체 검출과 인식, 추적, 3D 비전 문제등을 해결할 수 있는 최적화 되어 있는 라이버르리로 널리 사용되고 있습니다.

BSD(Berkeley Software Distribution) 라이선스를 따르고 있으며, 교육 및 상업 목적의 사용이 모두 무료(일부 유료 제외)인 라이브러리 입니다.

 

간단한 개발 이력은 아래와 같습니다.

 

1. 파일 다운로드

 

OpenCV 공식 사이트에 접속합니다.

https://opencv.org/

 

Home

OpenCV provides a real-time optimized Computer Vision library, tools, and hardware. It also supports model execution for Machine Learning (ML) and Artificial Intelligence (AI).

opencv.org

 

그럼 메인 화면이 뜨고 Library >> Releases 에 들어갑니다.

 

 

Release 화면이 나오고 가장 최신 버전을 다운 받습니다.

(연구용은 최신 버전 다운 받으셔도 되고, 만약 상업용이나안정성이 필요한 시스템의 경우에는 좀 더 안정적인 버전을 다운 받으시는 것도 좋아요.)

Windows 버튼을 누르면

자동으로 opencv-4.7.0-windows.exe 파일을 다운 받습니다.


여기서 잠깐!!

잠시 OpenCV 4.7.0의 Release Notes를 보니까,

DNN 쪽 개선도 있었고, 다른 일부 함수의 성능 최적화등 개선이 있었고,

특히 저희가 관심 있는 부분에서 신규 함수가 추가되었네요.

stackBlur 라는 함수에요. kernel size에 무관한 속도가 나오네요.

이것에 대해서는 나중에 다뤄볼께요.

나머지는 Release Note를 천천히 읽어 보세요.

 


 

2. OpenCV 설치

 

다운로드 폴더에 가면 아래와 같은 파일이 보일꺼에요.

그럼 opencv-4.7.0-windows.exe 파일을 더블 클릭 합니다.

archive file을 extracting 하는 창이 뜰 것이고

이 때 '...' 버튼을 누르시고 C 드라이브를 선택하신 후 확인 버튼을 누릅니다.

그럼 C 드라이브가 선택된 archive 푸는 창이 보이는데,

Extract 버튼을 눌러 줍니다.

그럼 압축 파일이 풀리면서 설치가 됩니다.

잘 설치가 되었는지 확인해야겠죠?

windows 탐색기(windows 버튼 + 'e')에서 C 드라이브에 들어가시면,

opencv 라는 폴더가 생성되었을 것 입니다.

 

3. Visual Studio 세팅

 

Visual Studio 2019를 실행시킵니다.

새 프로젝트 만들기(N)를 클릭하시고

콘솔 앱을 눌러 줍니다. 빈 프로젝트도 상관 없습니다.

프로젝트 이름을 적어 주고 만들기(C) 버튼을 눌러주면

프로젝트가 생성됩니다.

여기서, 현재 어느 폴더에 프로젝트가 생성되었는지 궁금하시다면,

파일 이름 탭에 마우스를 놓고 오른쪽 클릭을 하시면

상위 폴더 열기(O) 가 보입니다. 그걸 클릭하시면 해당 폴더로 이동합니다.

일단 프로젝트를 x64로 속성을 바꿔 주시고(요즘 PC는 대부분 64bit이기 때문이죠.)

오른쪽 또는 왼쪽에 솔루션 탐색기를 보면 프로젝트 이름이 있을 것이고,

프로젝트 이름에 마우스 올리시고 오른쪽 클릭 하시고 속성을 클릭하시면

프로젝트 속성을 보실 수 있습니다.

프로젝트 속성 창이 뜰 거고요.

그럼 일단 구성란을 모든 구성으로 선택합니다.

플랫폼은 활성(x64)인지 확인하세요.

3.1 include 설정

 

C/C++ >> 일반을 클릭하시고

추가 포함 디렉터리에서 <편집...> 을 누릅니다.

그럼 아래와 같은 창이 뜨게 되는데

아무것도 없어 보이는 빨간 박스 영역을 클릭해보시면

아래와 같이 디렉터리 선택 창이 뜨고 아까 OpenCV를 설치했던 곳으로 이동합니다.

저는 C:\에 설치했어요.

C:\opencv\build\include에 들어가신 후 폴더 선택을 누르시면 됩니다.

일반적인 소스는 #include <opencv2/ ... > 이런식으로 되어 있으니까

여기까지만 선택하시면 됩니다.

그럼 다시 아래와 같은 창이 뜨고, 경로가 입력된 것을 볼 수 있습니다.

(경로를 직접 입력해 주셔도 무관합니다.)

확인 버튼을 누르시면 다시 프로젝트 속성 창이 보이는데, 이제는 라이브러리를 링크해야 합니다.

 

3.2 링커 설정

링커 >> 일반 >> 추가 라이브러리 디렉터리 >> <편집..>

을 차례로 눌러줍니다.

위와 마찬가지로 '추가 라이브러리 디렉터리' 창이 뜨고, 오른쪽 빨간 네모칸을 클릭하면

디렉터리 선택 창이 뜹니다.

그럼 c:\opencv\build\x64\vc16\lib 를 선택하셔서 폴더 선택 버튼을 눌러 줍니다.

이제 라이브러리 이름을 넣어 줘야 할 차례 입니다.

여기에서는 모드별로 다른 라이브러리 파일을 넣어야 해서

구성을 Debug로 변경해 줍니다.

링커 >> 입력 >> 추가 종속성 >> <편집...>

을 클릭하시면

아래와 같이 편집 창이 나옵니다.


여기서 잠깐!!

opencv 버전마다 다른 부분을 알려드릴께요.

opencv 4.6.0 버전까지는

vc14, vc15 폴더가 있어요. 이는

vc14: visual studio 2015

vc15: visual studio 2017

버전에서 컴파일된 버전이고, visual studio 버전에 따라 맞는 버전을 사용하는 것이 권장되기는 하나 요즘에는 어떠한 버전을 사용해도 다 동작 됩니다.

예를 들어 visual studio 2019에서 v14를 사용해도 되고, v15를 사용해도 됩니다.

opencv4.7.0은 vc16폴더만 있네요.

제가 확인해보니까 vc16 폴더 버전도 visual studio 2017, 2019, 2022 모두 잘 동작 되네요.


라이브러리 폴더로 이동하면 아래와 같은 라이브러리가 있어요.

이 이름을 넣어 주시면 되는데요.

opencv_world(버전)(모드).lib 형태로 되어 있어요.

Release 모드 opencv_world470.lib

Debug 모드 opencv_world470d.lib

입니다.

그럼 추가 종속성 란에 opencv_world470d.lib 를 적어 줍니다.

그리고 확인을 누르신 후 적용 버튼을 눌러줍니다.

Release 모드도 같은 방식으로 들어가셔서

opencv_world470.lib 를 입력해 주신 후 확인 >> 적용을 눌러 주시면 됩니다.

이제 환경 설정이 어느정도 끝났어요.

 

4. OpenCV 사용하기

 

아래와 같이 opencv2/opencv.hpp 를 include 하고

영상 하나를 읽어 옵니다. 그런데 실행하면 빌드 오류가 발생하네요.

LNK1104 'opencv_world470d.lib' 파일을 열 수 없습니다.

에러에요.

이건 dll 파일을 찾을 수 없어서 link 에러가 난 거니까요.

opencv 설치 폴더에 가시면 opencv_world470.dll 과 opencv_world470d.dll이 있고

opencv_world470d.dll Debug 폴더에,

opencv_world470.dll Release 폴더에 복사해 주시면 됩니다.

현재 프로젝트가 있는 폴더로 이동하셔서

x64 폴더 Debug 폴더 opencv_world470d.dll 을 복사하세요.

그리고 다시 빌드>>실행하시면 아래와 같이 영상이 제대로 입력된 것을 볼 수 있어요.

(물론 dll 경로를 환경변수에 등록하여 사용하시면 별도로 복사를 하시지 않으셔도 됩니다.)

최신 버전을 깔아봤으니까 새로 추가된 함수(stackBlur())를 한번 써 보겠습니다.