ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows10_Qt(mingw32(C++) )-OpenCV 개발환경 설정
    개발Tool/PyQt 2021. 6. 12. 19:55

    PyQt는 Cross Platform으로써, 서로 다른 Platform에서도 개발 및 실행가능한 장점이 있습니다.

     

    그래서, 개발환경 설정방법에 대해서 정리를 하려합니다.

     

    혹시 이 글을 보시는 분들께서 다른의견이나 잘못된 부분이 있으면 댓글 부탁드립니다.

     

    그런 소통을 좋아하니, 많은 호응부탁드립니다!

    (밑의 설명은 편의를 위해서, 존댓말을 사용하지 않았습니다. 양해부탁드립니다.)

     

     

    1. 환경

    -.OS : Windows10 64Bit 

    -.Qt Version :  Ver5.12.11 (Offiline버전으로 설치했음. 설치파일명 : qt-opensource-windows-x86-5.12.11.exe)

    -.OpenCV Version : 3.4.7(Contrib도 동일)

     

    2. 설정

    2.1) Qt 설치

    -. Qt 홈페이지 접속 : Google에 qt로 검색한 후 최상단의 공식홈페이지를 클릭하여 접속

     


    -. Download 페이지 검색 : 홈페이지 접속 후 제일아래로 내린다음에 하단우측의 Community -> Downloads클릭


    -. Opensource Download 페이지 선택 : Downloads for open source users->Go open source 클릭


    -. Download 선택 : Download the Qt Online Installer 클릭


    -.Download 선택 : Download 클릭(만약, 온라인 Installer로 설치하려면, 아래의 Download를 클릭, 필자는 Offline으로 다운로드 하고 싶어서, 다음 단계의 방법을 이용했음)

     


    -.Offline 다운로드 : View Other option 클릭 -> Offiline Installers 클릭 


    -. Platform(OS) 및 버전확인/선택 : 필자는 5.12.x Offiline Installers를 설치. 왼쪽 상단에서 3번재 버튼클릭

     

     


    -. Platform(OS)에 맞는 설치파일 다운로드 

     

    이때, 다운로드 시 회원가입을 해야한다. 회원가입 시 개인정보(연락처, 신분증 등)은 요구하지 않고 기본적인 E-mail주소만 필요하다. 

     

     

    2.2) CMake 설치

    -. 구글에 CMake검색 후 공식홈페이지 접속


    -.상단부분의 메뉴버튼(돋보기 우측)을 클릭하면 아래그림과 같이 메뉴가 펼쳐진다. 제일 하단부의 Download를 클릭

     


     

     

     

     

     

    2.3) OpenCV 설치

    -.Google에서 opencv download로 검색 후 제일상단의 공식홈페이를 클릭한다.

     


    -.버전 3.4.7을 찾고, sources를 클릭하여 다운

     


    -. Contribute 버전다운 : https://github.com/opencv/opencv_contrib 접속 후 하기와 같이 OpenCV와 동일한 버전을 검색하고 다운로드한다. 

     

     


    -. 위에서 다운받은 압축파일을 C드라이브에 다음과 같이 압축을 풀어준다.

     

     


    -.위의 2개의 폴더 중 opencv-3.4.7폴더를 열면 여러가지 파일과 폴더가 있을 것이다.

    추후 CMkae작업을 하기위해 하기와 같이 하여준다.

    1. /opencv-3.4.7에 source, build라는 새 폴더를 만들어준다.

    2. /opencv-3.4.7/source에 폴더와 파일을 모두 집어넣는다. 

    (build폴더는 CMake 후 결과파일들이 들어간다. 추후 CMake에서 언급된다.)

     

     

     


     

    2.4) CMake build작업

    이 부분이 제일 주의를 기울어야 하는 부분이다. 

     

    -. 설치한 CMake 프로그램을 실행한다. 그 후 아래의 화면에서 다음과 같이 설정하여 준다. 

     

    1. OpenCV Source Directory : Build를 하기위한 Source의 경로이다. 이전단계의 /opencv-3.4.7/source를 선택하면 된다.

    (Browse Source라는 버튼을 누르면 윈도우탐색기로 폴더를 선택할 수 있다. 직접 경로를 입력할 필요가 없다.)

    2. OpenCV Build Directory : Build 된 결과물에 대한 경로이다. 이전단계의 /opencv-3.4.7/build를 선택하면 된다.

    3. Configure : Build 시의 Option설정.  1,2번의 경로설정 후 Configure버튼을 클릭한다.

     

     


    -. compiler 선택 : Specify native compiler를 선택 후 MinGW Makefiles를 선택한다. 

     


    -. 하기와 같이 컴파일러를 선택한다. 

    C : C:/Qt/Qt5.12.11/Tools/mingw730_32/bin/gcc.exe

    C++ : C:/Qt/Qt5.12.11/Tools/mingw730_32/bin/g++.exe

    선택 후 Finish버튼 클릭. Finish를 클릭한다. 클릭 Configure 후 아래와 같이 바뀐다.

     

     

     

     


    -. 환경변수설정 : 내컴퓨터 -> 왼쪽하단 부 탭 중 고급시스템설정 -> 시스템속성 중 고급탭의 환경변수 클릭

     

          -. 시스템변수 중 Path클릭 

        

         

     

       -. 환경변수에서 우측의 "새로 만들기"버튼을 클릭하여 왼쪽의 3개 추가.

     

     

     


    -. CMake설정화면 상단 부에 "qt"라고 입력 후 체크하여 준다.

     

     


    -. CMake설정화면 상단 부에 "extra"라고 입력 후 체크하여 준 후, OPENCV_EXTRA_MODULE_PATH를 설정한다.

    Opencv Contribute의 기능을 컴파일하기 위하여 추가한다. 

    Value 클릭 -> C:\opencv_contrib-3.4.7\modules 설정

     

     

     


    -. CMake설정화면 상단 부에 "cxx"라고 입력 후 체크하여 준 후, ENABLE_CXX11를 체크한다.

     


    -. CMake설정화면 상단 부에 "prec"라고 입력 후 체크하여 준 후, ENABLE_PRECOMPILED_HEADERS를 체크해제한다.

     


    -. CMake설정화면 상단 부에 "msm"라고 입력 후 체크하여 준 후, WITH_MSMF를 체크해제한다.

     


    -. CMake설정화면 상단 부에 "pyth"라고 입력 후 체크하여 준 후, python 관련된 것을 전부 지워준다. 

     

     


    -. CMake설정화면 상단 부에 "cmake"라고 입력 후 Release라고 입력한다.

     


    -. 하단 부의 Configure버튼클릭

     


    -. C:\opencv-3.4.7\source\modules\videoio\src\cap_dshow.cpp파일을 편집기로 열고, 

    하기 빨간색 상자를 타이핑하여 준다.

     


    -. 위의 Configure가 끝난 후 1번과 같이 Configureing Done이라고 뜬다.

    CMake설정화면 상단 부에 "qt"라고 입력 후 체크하여 준 후, Value에 다음과 같이 입력한다.

    (만약에, 기본적으로 아래와 같이 경로가 설정되어 있으면, 그대로 사용하면 된다. 필자는 Anaconda의 폴더로 설정되어 있어서, 경로를 바꾸어 주었다.)

     

    1) Qt5Concurrent_DIR : C:\Qt\Qt5.12.11\5.12.11\mingw73_32\lib\cmake\Qt5Concurrent

    2) Qt5Core_DIR : C:\Qt\Qt5.12.11\5.12.11\mingw73_32\lib\cmake\Qt5Core

    3) Qt5Gui_DIR : C:\Qt\Qt5.12.11\5.12.11\mingw73_32\lib\cmake\Qt5Gui

    4) Qt5OpenGL_DIR : C:\Qt\Qt5.12.11\5.12.11\mingw73_32\lib\cmake\Qt5OpenGL

    5) Qt5Test_DIR : C:\Qt\Qt5.12.11\5.12.11\mingw73_32\lib\cmake\Qt5Test

    6) Qt5Widgets_DIR : C:\Qt\Qt5.12.11\5.12.11\mingw73_32\lib\cmake\Qt5Widgets

     

    * 이 부분에서 필자는 Generate시  Anaconda의 Qt경로로 기본적으로 잡혀서 Generate시 에러를 찾는데

    한참을 고생했다. 알고보니, 밑의 3번의 경로가 위의 1)~6)대로 안되어 있어서 에러가 발생했었다.

    경로를 자세히 확인해야한다. 

     

    *또한 Anaconda안의 Opencv file과 현재 Generate할 opencv와의 충돌발생 (Confilt)도 경험하였다.

    그래서 만약 충돌이 발생한다면, Anaconda를 완전히 삭제하고 재부팅 한다음 작업을 하여 Generate를 완료했다.

    Anaconda와 충돌을 피하려면, Anaconda설치 후 가상환경을 생성하고 그 가상환경에서 설치하는 것이 좋다.

     

     


    -. Generate버튼을 클릭한다. Generate가 완료되면 완료됬다고 나온다.

     

     


    -. 내컴퓨터 환경변수 추가화면에서 아래와 같이 2개의 환경변수를 더 추가하여 준다. 

    (방식은 위의 방법과 동일하다.)


    -. 탐색기에서 C:\opencv-3.4.7\build를 찾아 들어간다음, 상단에 cmd를 입력한다. 

     


    -. 그 후 다음과 같이 명령어를 입력한다. 

    mingw32-make

    그 후 완료 시 "Built target opencv_version_win32" 메시지가 뜬다. 

     

       

     

     


    -. make완료 후 아래의 명령어를 입력하여 install을 하여준다. 

    mingw32-make install

       

     

         

       

           

     

    위의 작업이 끝난 후 PC 재부팅을 꼭 한번 하신 후 아래의 작업을 수행 해 주세요!!!(경험 상 재부팅을 해야 알수없는 오류가 발생하지 않았습니다.)


     

    3. 프로그램 생성 및 OpenCV 연동

    Qt Creator 프로젝트를 생성하고, OpenCV와 연동.

     


    -. 아래와 같은 순서로 Qt 프로그램 실행 및 프로젝트 생성을 한다. 그림을 보고 따라서 진행하면 된다.

     

     


    -. project명.pro 파일에 헤더파일과 라이브러리 파일의 경로(Path)를 설정하여 준다.

    (필자는 프로젝트명이 MyOpenCVTest)

    혹시나, 모르시는 분들을 위해서 말씀드리면, 아래의 내용추가 후 반드시 Save를 해야 다음단계의 프로그램 작성 시 에러가 발생하지 않습니다. 

     

    INCLUDEPATH : 헤더파일 참조경로

    LIBS : 라이브러리파일 참조경로

     


    -. main.cpp에 테스트할 간단한 프로그램 작성

     

     

    그 후 Save 한 다음, Build(Ctrl+B) -> Run(Ctrl+R) 진행.

    프로그램 실행 화면

     

     

Designed by Tistory.