我想将OpenCV与Python一起使用,所以我下载了OpenCV for Windows,并在解压缩后获得了~3.7GB的文件夹。让我感到惊讶的是,我需要的唯一文件是cv2.pyd,与C版本(~674MB)相比,它是如此之小(~11MB)。我只是将它复制到我的Python lib-packages文件夹而不向我的PATH添加任何东西,它运行得很好。
我不知道Python绑定是如何工作的,我认为它应该引用C / C ++实现。但是,cv2似乎不需要任何C / C ++库。它对我来说看起来很神奇。
答案 0 :(得分:1)
很可能与静态链接有关,并使用了"Reducing Executable Size"或"GCC x86 code size optimizations"
中的所有可能的技巧OpenCV使用cmake作为构建系统,它提供“MinSizeRel”构建类型。它似乎自动应用了大部分技巧。找不到任何好的文档,因此:[citation needed]
(遵循我的原始答案,但没有完全解决实际问题)
获取opencv for python的更方便的方法可能是从以下网址下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
运行安装程序后,您会在cv2.pyd
c:\python27\lib\site-packages
就我们而言.pyd
文件与.dll
相同:http://docs.python.org/2/faq/windows.html#is-a-pyd-file-the-same-as-a-dll
这意味着我们可以使用Dependency Walker来查看它。这就是我们所看到的:
此图片表示cv2.pyd
与包含实际功能的opencv库动态链接。这些占用大约45MB的磁盘空间。