ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++, Python, Android에서 OpenCV의 Extra 모듈과 nonfree 모듈 사용하는 방법
    OpenCV/Windows개발 환경&라이브러리 빌드 2019.10.17 17:38



    C++, Python, Android에서 OpenCV의 Extra 모듈과 nonfree 모듈 사용하는 방법을 정리해보았습니다. 

    추가할 내용이나 틀린 점이 있으면 댓글로 알려주시면 감사하겠습니다. 



    현재 다음 두 개의 깃허브에서 OpenCV가 배포되고 있습니다. 

    OpenCV는 다수의 모듈로 구성되어 있는데 지속적으로 관리가 되고 있는 모듈들은 [1]에서 배포하고 

    상대적으로 덜 관리되고 있는 모듈은 [2]에서 배포되고 있는 듯합니다. 


    [2]에는 nonfree 알고리즘인 SIFT, SURF가 포함되어 있으며  [2]에서 안정화 된 모듈은 [1]로 이동되기도 합니다. 



    [1] https://github.com/opencv/opencv


    [2] https://github.com/opencv/opencv_contrib






    C++


    윈도우의 경우 [1]에서 Visual Studio 2015, 2017을 위해 빌드된 OpenCV 64비트용이 배포됩니다. 여기에는 Extra 모듈이 포함되어 있지 않습니다. 


    Visual Studio 2019를 위해 미리 배포되는 공식 OpenCV는 없지만 [1]에서 배포되는 OpenCV도 사용가능합니다. 

    동작은 하지만 나중에 문제가 생길 수도 있을 듯합니다.  



    Extra 모듈을 포함시키려면 CMake를 사용하여 설정 후, 사용하려는 Visual Studio를 사용하여 빌드해야 합니다. 

    이때 C++ / Python을 위한 OpenCV를 얻을 수 있습니다. 


    Visual Studio 2019용으로 OpenCV 4.1.0 빌드 하기 (Extra 모듈 contrib 포함)

    https://webnautes.tistory.com/1329



    참고로 MinGW에서 사용하려는 경우에도 따로 빌드해야 합니다. 


    MinGW + Sublime Text 3에서 OpenCV 사용하는 방법

    https://webnautes.tistory.com/1331




    우분투의 경우에는 apt-get를 사용하여 설치할 수도 있지만 최신 버전을 설치하기 위해 보통 소스코드를 [1]에서 다운로드 받아 빌드하여 설치합니다. 

    이때 Extra 모듈을 포함시키기 위해 [2]에서도 소스코드를 다운로드 받습니다. 

    C++ / Python을 위한 OpenCV를 얻을 수 있습니다. 


    Ubuntu 18.04에 opencv_contrib 포함하여 OpenCV 4.0.1 설치하는 방법

    https://webnautes.tistory.com/1186





    Python


    윈도우와 우분투 모두 pip를 사용하여 설치 가능합니다. 


    opencv-python 패키지에는 [1]에서 배포되는 모듈만 포함되어 있습니다. 

    opencv-contrib-python 패키지에는 [1]과 [2]에서 배포되는 모듈이 포함되나 nonfree 알고리즘인 SIFT, SURF 등은 빠져있습니다. 



    nonfree 알고리즘을 포함시키려면 C++ 항목에서 언급한 것처럼 해당 플랫폼을 위해 빌드시켜야 합니다.






    Android 

    [1]에서 미리 빌드된 Android용 OpenCV가 배포됩니다. Extra 모듈이 빠져있습니다.

    Extra 모듈을 포함시키려면 [1]과 [2]에서 소스코드를 다운로드 받아 빌드해야 합니다. 


    Android 용으로 OpenCV 4.1.1 빌드하는 방법 (Build OpenCV 4.1.1 for android )

    https://webnautes.tistory.com/1268








     

    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 후원 또는 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구 독 하 기
    후 원 하 기


    댓글 0

Designed by Tistory.