赞
踩
准备工作
1、安装好cuda、cudnn、cmake、VIstual Studio(我这里用的2019)
2、下载OpenCV和opencv_contrib,网址:https://opencv.org/releases/中下载sources。在https://github.com/opencv/opencv_contrib/tags中下载与OpenCV对应的contrib。
1、新建一个Opencv_Build文件夹,上面两个文件下载完成后,解压到此。并创建一个build文件夹,一会儿编译时会用到。
2、管理员身份打开cmake,设置源码路径和build路径,并勾选grouped。
3、点击configure选择编译器(注意:只有没有配置编译器时,才会弹出编译器配置弹框)。选择Visual Studio 16 2019及x64然后按Finish。
完成后,会出现下图界面
4、配置编译选项
搜索栏搜索cuda,勾选和cuda相关选项。其中,BUILD_CUDA_STUBS不用打钩。
搜索WITH_TBB,勾选
搜索java、python,取消选择 java 和 python 的编译选项(个人不需要)
勾选 BUILD_opencv_world 最终只生成一个动态链接库方便使用
搜索 OPENCV_EXTRA_MODULES_PATH ,填入 OpenCV_contrib 解压文件夹 modules 的路径
搜索OPENCV_GENERATE_SETUPVARS,取消选择
若使用EIGN,记得勾选WITH_EIGN
再次点击 configure 按钮。要保证这个过程中不出现红色警告,不然后续编译过程会出错。常见的红色警告解决方法如下。
5、configure警告解决方法
if(POLICY CMP0148)
cmake_policy(SET CMP0148 OLD)
endif()
6、配置算力
#include <opencv2/core/cuda.hpp>
#include <iostream>
int main()
{
using namespace cv;
std::cout << cv::getBuildInformation()<<std::endl;//获取build相关的信息,比如C++编译器版本、opencv_cuda是否编译成功
cuda::printCudaDeviceInfo(cuda::getDevice());
int count = cuda::getCudaEnabledDeviceCount();
printf("GPU Device Count : %d\n", count);
printf("OpenCV version: %s\n", CV_VERSION);
}
出现下图所示即为成功。
1、项目生成过程出现关于“test_qrcode_encode.cpp…opencv_test_objdetect”的错误。
这是编码格式造成的,双击错误,定位到出现错误的文件,然后更改文件编码格式为“简体中文(GB2312)-代码页 936”即可。至于怎么更改文件编码格式,可以参考这个:https://www.jb51.net/article/246517.htm
2、测试代码运行不成功。
错误1:No CUDA support
首先排查你调用的dll是否正确:将你的\install\x64\vc16\bin文件夹下的dll文件拷贝至项目目录。然后测试代码,如果运行成功,说明你的“C:\Windows\System32”目录(或C:\Windows\SysWOW64”目录)中存在旧的opencv文件。
若还是不成功,先在测试代码中运行std::cout << cv::getBuildInformation()<<std::endl;获取build相关的信息。查看CMake build tool或者C++ Compiler是否是你在Cmake中配置的Visual Studio(见下图)。如果不是,说明Visual Studio环境变量没有配置好。按照这篇文章配置好即可。https://blog.csdn.net/en_Wency/article/details/124767742
3、找不到opencv_*.dll。
解决方法:先找到opencv的dll文件目录,比如:D:\OpenCV_Build\build\install\x64\vc16\bin。
法一:将所需文件复制到“C:\Windows\System32”目录(或C:\Windows\SysWOW64”目录,如果是64位系统)
法二:将所需文件添加到项目目录中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。