Programming/Qt

[도서 실습] Qt 5 and OpenCV 4 Computer Vision (OpenCV-contrib windows 버전 설치하기)

변화의 물결1 2024. 5. 7. 00:05

 

 

안녕하세요.

 

  Facetious 내용 중 OpenCV-contrib 모듈에 있는 기능을 사용하기 위해서 우선 OpenCV-contrib 버전을 설치해야 합니다. 처음 OpenCV 설치할 때 같이 설치했으면 좋지 않았을까 하지만, 지금 내용이 나오기 때문에 어떻게 추가 설치하는지 확인해 보도록 하겠습니다.

 

 단, 이전 내용에서 Windows용 OpenCV를 64bit용 Mingw32 컴파일해서 OpenCV 라이브러리를 사용하고 있다는 전제에서 아래 내용을 진행하시면 됩니다. 만약 OpenCV 설치하는 과정이 필요하다면 아래 링크를 참조하시면 됩니다. 그리고 Windows용으로 OpenCV를 설치할 때 윈도용으로 압축된 프로그램을 실행하시는 것을 추천드립니다. (https://sourceforge.net/projects/opencvlibrary/)  Sourceforge에 있는 것으로 설치하면 CMAKE_CXX 환경변수 등의 문제에서 조금은 자유로울 수 있습니다.

 

OpenCV설치 참고 링크 - https://remnant24c.tistory.com/257

 

  - OpenCV에서 새로운 API가 추가되는 경우 안정성이나 성능이 검증되지 않은 경우 공식 배포를 하지 않고, Extra Modules(opencv_contrib)에 포함시키게 됩니다. 여기에 필요한 facial landmarks 등 기능이 포함되어 있습니다.


 

1. contrib 모듈 설치 전 준비사항

 

1) OpenCV-contrib 준비

 

   - OpenCV-contrib의 github로 가서 최신 소스 혹은 본인 버전에 맞는 소스를 찾아(tag) 다운로드하여 압축을 풀어놓습니다. 아니면 git clone으로 소스를 받으셔도 됩니다.

  git clone https://github.com/opencv/opencv_contrib.git

 

2) CMake 프로그램 준비

 

   - 이전에 설치한 CMake-gui를 실행시킨 후 기존의 OpenCV 라이브러리를 만들었던 경로(opencv/source)를 불러오면 기존의 Qt설정과 OpenCV를 설정한 환경 설정 내용들이 남아 있습니다.

  https://cmake.org/download/

 

 

 

 

2. OpenCV contrib 환경 설정하기

 

  - OPENCV_EXTRA_MODULES_PATH 옵션에 contrib 압축 푼 폴더의 modules 경로를 입력해 줍니다.

 

 

 

   - Configure과 Generate를 눌러 컴파일 설정 파일을 만듭니다. 문제가 없다면 Done으로 나타나고 경로나 어떤 문제가 나타나면 Error로 표시됩니다.

 

 

 

3. 컴파일 및 인스톨

 

  - 고급 시스템 설정의 환경변수(path : C:\Qt\Qt5.12.11\Tools\mingw730_64\bin)에 적용 후에도 명령어 프롬프트에서 mingw32-make.exe가 실행되지 않는다면, 윈도우에 포함되어 있는 파워셀(PowerShell)을 실행해서 컴파일시킵니다. (환경변수 qt의 path는 설치한 버전에 따라 다를 수 있습니다. 참고 정도로 하면 될 듯합니다.)

 

  - 컴파일을 진행하려면 CMake에서 지정한 경로(Where to build the binaries)로 이동해서 컴파일을 진행합니다.

    mingw32-make.exe  -j  4

 

 

 

  - 컴파일이 완료되면 라이브러리를 설치합니다.

    mingw32-make.exe  install

 

  - 설치가 완료된 후, OpenCV 라이브러리 경로에 가보면 기존에 20개 내외로 있던 라이브러리 파일들이 50개 이상으로 늘어난 것을 확인할 수 있습니다.

 

 

 

4. 참고사항

 

   - 만약 CMake 중간에 에러가 난다면, opencv를 컴파일한 mingw 버전을 바꾸었거나 contrib 버전과 호환이 되지 않는 버전을 사용하였을 때 나는 듯하였습니다.

 

<컴파일한 PC의 Qt 버전과 복사한 PC의 Qt 버전이 달라 경로 오류를 낸 경우>

 

 

 

 <각 버전이 맞지 않아서 에러가 날 경우인 듯 - 확실하지는 않음>

 

 

 

  - 컴파일 에러가 발생하거나 컴파일이 오래 걸리는 것이 문제 된다면, 버전이 비슷한 Qt에 설치한 OpenCV라이브러리를 복사해서 사용해도 문제가 발생하지는 않았습니다.

 

 

감사합니다.

 

 

<참고사이트>

1. Repository for OpenCV's extra modules

https://github.com/opencv/opencv_contrib

2. windows환경에서 opencv 소스코드 빌드하여 설치하기

https://hayunjong83.tistory.com/15

3. OpenCV contrib 설치 및 Cmake

https://eehoeskrap.tistory.com/109 

 

 

반응형