是什么让OpenCV在Windows上如此庞大?我能做些什么吗?

时间:2013-06-14 12:31:31

标签: windows opencv emgucv

Windows的OpenCV x64发行版(通过emgucv)有近半个GB的DLL,包括一个224Mb的opencv_gpu.dll。似乎任何人都不可能产生那么多代码,那么是什么呢?大型嵌入式资源?代码生成膨胀(这似乎不太可能,因为它是一个本机c / c ++项目)

我想用它进行人脸识别,但是在git中有这么大的二进制依赖是一个问题,在源代码控制之外进行管理是个麻烦。

[更新] 没有嵌入式资源(至少通常有Windows DLL,但由于这是一个跨平台产品,我不确定它是否重要。)可能有很多初始化的C表结构来执行矩阵运算?

1 个答案:

答案 0 :(得分:3)

opencv_gpu的大小是为多个CUDA架构版本编译的众多模板实例化的结果。

例如卷积:

  • 7种数据类型(从CV_8UCV_64F
  • ~30个已编码的卷积内核大小
  • 8个CUDA架构(bin:1.1 1.2 1.3 2.0 2.1(2.0)3.0 + ptx:2.0 3.0)

这产生了约1700个卷积变体。 对于最新的OpenCV版本,这种方式opencv_gpu可以增长到1 Gb。

如果您不打算使用任何CUDA加速,那么您可以安全地删除opencv_gpu.dll