반응형



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








 

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts