2014-01-23 1 views
2

저는 OpenCV를 파이썬과 함께 사용하기를 원했기 때문에 Windows 용 OpenCV를 다운로드하고 압축 해제 후 ~ 3.7GB의 폴더를 얻었습니다. 나에게 놀랐던 것은 내가 필요한 유일한 파일이 C 빌드 (~ 674MB)에 비해 매우 작은 (~ 11MB) cv2.pyd 뿐이라는 것이었다. 내 PATH에 아무 것도 추가하지 않고 파이썬 lib-packages 폴더에 복사하기 만하면 완벽하게 작동했습니다.왜 Python 빌드 OpenCV (cv2.pyd)가 그렇게 작습니까?

파이썬 바인딩이 어떻게 작동하는지 모르겠다. 그리고 나는 두포에서 C/C++ 구현을 호출해야한다고 생각했다. 그러나 cv2에는 C/C++ 라이브러리가 필요하지 않은 것으로 보입니다. 그것은 나에게 마술처럼 보입니다.

답변

1

대부분의 경우 그것은 정적 링크와 함께 할 수있는 뭔가가와 "Reducing Executable Size" 또는 "GCC x86 code size optimizations"

OpenCV의 발견 가능한 모든 트릭을 사용하여 "MinSizeRel는"유형을 구축 제공 빌드 시스템으로 cmake 사용합니다. 대부분의 트릭을 자동 적용하는 것 같습니다. 따라서,이에 대한 좋은 문서를 찾을 수 없습니다 :


[citation needed] 파이썬에 대한 OpenCV의를 얻을 수

더 편리한 방법 (매우 실제적인 문제를 해결하지 않았다 내 원래의 대답을 다음) 할 수있다 c:\python27\lib\site-packages

당신이 cv2.pyd을 찾을 수 있습니다 설치 프로그램을 실행 한 후 http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

:에서 다운로드 할 수 10 우리가 염려하는 한 .pyd 파일은 .dll과 동일합니다. http://docs.python.org/2/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

즉, Dependency Walker을 사용하여 조사 할 수 있습니다.

cv2.pyd

이 그림은 cv2.pyd 동적으로 실제 기능이 포함 OpenCV의 라이브러리에 링크되는 것을 의미한다 : 이것은 우리가 볼 것입니다. 이것들은 약 45MB의 디스크 공간을 차지합니다.

+2

하지만이 OpenCV DLL 파일도 내 사이트 패키지 폴더에 없습니다. –

관련 문제