- OpenCV 4.10.0
- Qt 6.5.0, Qt Creator 11.0.1
윈도우용 OpenCV 4.10.0 버전의 Pre-built 라이브러리는 VC16(MSVC 2019)에서 빌드된 dll, lib 파일을 제공한다. 따라서 소스 코드를 직접 빌드할 필요 없이 여타 3rd party 라이브러리를 사용하듯 OpenCV의 기능을 간편하게 이용할 수 있다. 하지만 opencv_contrib 모듈은 포함되어 있지 않기 때문에 관련 기능들은 사용할 수 없다. 아울러 Qt 기반의 사용자 인터페이스를 사용할 수 없다. 예를 들어 highgui 헤더의 imshow()를 호출했을 때 아래와 같이 윈도우가 제공하는 기능에 차이가 있다.
opencv_contrib 모듈이 반드시 필요한 상황이 아니라면 pre-built 라이브러리를 사용하는 것도 적절한 선택인 것 같다. 개인적인 생각으로 Qt 사용자 인터페이스를 사용할 수 없다는 것이 중요한 부분은 아닌 것 같다. 끝으로 윈도우용 OpenCV 설치 문서에서는 pre-built 라이브러리는 MS 비주얼 스튜디오에서만 사용할 수 있다고 되어있지만, 빌드 툴을 MSVC로 지정한다면 Qt Creator에서도 사용할 수 있다.
다운로드
OpenCV/Get Started에 접속하면 아래와 같은 화면을 볼 수 있다.
Building From Source를 No로 선택하고 Run this Command에 나타나는 github 링크를 클릭하자.
여기서 opencv-4.10.0-windows.exe를 클릭하면 같은 이름의 파일이 다운로드된다. 만약 소스 코드를 다운로드받고 싶으면 그 아래에 Source code (zip)을 클릭하자.
설치
다운로드된 exe 파일을 실행하면 7-Zip self-extracting archive라는 이름의 압축 해제 창이 뜬다.
원하는 경로를 지정하고 Extract 버튼을 클릭하면 압축 해제가 진행된다.
압축 해제가 완료되면 지정된 경로에 opencv라는 이름의 폴더가 생기고 그 안에 압축되어 있던 파일들이 위치한다. 만약 7-Zip self-extracting archive 창에서 기본 경로를 그대로 사용했다면 exe 파일과 같은 위치에 opencv 폴더가 생길 것이다.
opencv 폴더 안으로 들어가 보면 build, sources 폴더가 있는데 build 폴더에는 pre-built 라이브러리가 있고 sources 폴더에는 pre-built 라이브러리의 소스 코드와 예제 코드 및 샘플 영상이 들어 있다.
pre-built 라이브러리 사용에 필요한 파일들은 아래 경로에서 확인할 수 있다.
- 헤더 파일 (*.h): build\include\opencv2
- 라이브러리 파일 (*.lib): build\x64\vc16\lib
- 공유 라이브러리 파일 (*.dll): build\x64\vc16\bin
공유 라이브러리 파일을 환경 변수에 등록하면 설치는 마무리 된다.
환경 변수 등록
환경 변수 편집 창에 공유 라이브러리 파일이 위치한 폴더의 전체 경로를 추가하자.
설치 확인
Qt Creator에서 Plain C++ Application을 위한 새 프로젝트를 만들자.
이 때 Kit Selection에서 MSVC2019를 선택하는 것을 잊지 말자.
프로젝트를 생성한 후 프로젝트에 OpenCV 라이브러리를 추가하자.
Library file:에 opencv_world4100.lib 파일을 지정하고, Include path:에 include 폴더를 지정하자. 그리고 windows: 그룹 박스에서 Add "d" suffix for debug version 체크 박스를 선택하자.
생성된 프로젝트 파일의 내용은 다음과 같다.
TEMPLATE = app
CONFIG += console c++17
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.cpp
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../LIBRARY/3rd/OpenCV/4.10.0/prevuilt/build/x64/vc16/lib/ -lopencv_world4100
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../LIBRARY/3rd/OpenCV/4.10.0/prevuilt/build/x64/vc16/lib/ -lopencv_world4100d
INCLUDEPATH += $$PWD/../../../../LIBRARY/3rd/OpenCV/4.10.0/prevuilt/build/include
DEPENDPATH += $$PWD/../../../../LIBRARY/3rd/OpenCV/4.10.0/prevuilt/build/include
이제 main.cpp 파일의 내용을 다음과 같이 수정하자. 원본 소스 코드는 sources\samples\cpp\opencv_version.cpp이다.
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#include <opencv2/core/utility.hpp>
#include <iostream>
static const std::string keys = "{ b build | | print complete build info }"
"{ h help | | print this help }";
int main(int argc, const char* argv[])
{
cv::CommandLineParser parser(argc, argv, keys);
parser.about("This sample outputs OpenCV version and build configuration.");
if (parser.has("help"))
{
parser.printMessage();
}
else if (!parser.check())
{
parser.printErrors();
}
else if (parser.has("build"))
{
std::cout << cv::getBuildInformation() << std::endl;
}
else
{
std::cout << "Welcome to OpenCV " << CV_VERSION << std::endl;
}
return 0;
}
프로젝트를 빌드하고 QtCreator의 Application Output 창에 다음과 같은 메시지가 나타나면 OpenCV가 정상 동작하는 것을 확인할 수 있다.
위의 예제 뿐만 아니라 sources\samples\cpp 폴더 내에 있는 어떤 소스 코드라도 빌드해서 확인해 볼 수 있다.
'OpenCV' 카테고리의 다른 글
QtCreator CMake 프로젝트를 위한 OpenCV 환경변수 설정 (OPENCV_DIR, Path) (0) | 2020.12.15 |
---|