Windows的OpenCV x64发行版(通过emgucv)有近半个GB的DLL,包括一个224Mb的opencv_gpu.dll。似乎任何人都不可能产生那么多代码,那么是什么呢?大型嵌入式资源?代码生成膨胀(这似乎不太可能,因为它是一个本机c / c ++项目)
我想用它进行人脸识别,但是在git中有这么大的二进制依赖是一个问题,在源代码控制之外进行管理是个麻烦。
[更新] 没有嵌入式资源(至少通常有Windows DLL,但由于这是一个跨平台产品,我不确定它是否重要。)可能有很多初始化的C表结构来执行矩阵运算?
答案 0 :(得分:3)
opencv_gpu
的大小是为多个CUDA架构版本编译的众多模板实例化的结果。
例如卷积:
CV_8U
到CV_64F
)这产生了约1700个卷积变体。
对于最新的OpenCV版本,这种方式opencv_gpu
可以增长到1 Gb。
如果您不打算使用任何CUDA加速,那么您可以安全地删除opencv_gpu.dll