用于构建opencv 3.1我在Visual Studio 2013中使用cmake。我下载了依赖项,如下所示:http://docs.opencv.org/3.1.0/d3/d52/tutorial_windows_install.html
配置cmake时,它首先显示的是:
FP16: Compiler support is available
A library with BLAS API not found. Please specify library location.
LAPACK requires BLAS
A library with LAPACK API not found. Please specify library location.
问题是,我不知道如何指定位置。对于" Eigen"库我自己设置库路径(EIGEN_INCLUDE_PATH,这是预定义的),cmake说:
Other third-party libraries:
Use IPP: NO
Use IPP Async: NO
Use Lapack: NO
Use Eigen: YES (ver 3.2.10)
Use Cuda: NO
Use OpenCL: YES
Use OpenVX: NO
Use custom HAL: NO
但LAPACK没有预先定义的变量。我还尝试将* .lib和头文件放在我从http://icl.cs.utk.edu/lapack-for-windows/下载的子目录中,希望如果cmake以某种方式找到库。
我必须自己构建opencv 3.1,因为在分布式版本中,额外的模块被禁用。它建立时没有LAPACK,但我的猜测是,我将失去很多性能。
非常感谢你的帮助!
答案 0 :(得分:2)
对我来说,我使用了OpenBlas库:
使用CMake Gui配置opencv
Advanced
OpenBLAS
组中,为OpenBLAS
WITH
群组中,选择WITH_LAPACK
Configure
按钮,CMake将自动配置Lapack信息。Generate
按钮生成visual studio项目文件并开始构建。答案 1 :(得分:0)
我会添加评论,但我没有足够的代表。
在我的情况下使用OpenBlas
和LAPACK
在Visual Studio 2013中构建OpenCV 3.2,除了Viets的答案,我还必须更改lapacke.h
中的两行以使用基于的标准库here
因此,对于lapacke.h
中的OpenBLAS版本0.2.19-Win64-int32我改变了
@line 74 float _Complex
至std::complex<float>
和
@line 90 double _Complex
至std::complex<double>
无需再次构建OpenBLAS库。
希望它有所帮助。