【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程

提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论

文章目录

  • 【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程
  • 前言
  • 准备工具
    • cuda/cudnn
    • cmake
    • opencv4.8.0
    • opencv_contrib
  • CMake编译
  • VS2019编译
  • 可能出现的问题
    • cmake编译过程中可能出现的问题
    • VS2019编译过程中可能出现的问题
    • 通常是对于部分资源,vs2019没有管理员操作权限,因此只需要用管理员身份重新打开进行操作即可。 ![](https://img-blog.csdnimg.cn/9d8f1254be3f4e40a95485ca3fec5670.png)
  • 测试使用GPU
  • 总结


前言

OpenCV是一个开源的计算机视觉库,包含了核心模块和扩展模块,提供了基础的图像处理和计算机视觉算法,以及一些机器学习工具。而OpenCV Contrib是OpenCV社区贡献的一组扩展模块之一,包含了一些较为新颖和实用的算法和工具函数,提供了一些高级的图像处理和计算机视觉算法。这些功能和算法可能不适合所有用户或者还处于实验性阶段。OpenCV Contrib模块中的代码由社区贡献者开发和维护,它们提供了一些在OpenCV核心库中尚未包含的新特性和实验性功能。


准备工具

cmake、vs2019、opencv4.8.0、opencv_contrib-4.8.0、cuda、cudnn

cuda/cudnn

安装cuda、cudnn可以参考此前博主的【深度学习windows10环境配置详细教程】,因为对于新手来说,需要注意的细节比较多,这里不浪费篇幅重复讲述了。

cmake

CMake官方下载地址,下载cmake-3.27.7-windows-x86_64.msi。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第1张图片
添加到环境和安装路径博主根据自身情况作出了修改,其他都是默认安装。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第2张图片
出现以下界面安装成功。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第3张图片

opencv4.8.0

Opencv官方下载地址,下载OpenCV – 4.8.0 Sources,下载解压opencv-4.8.0.zip。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第4张图片

opencv_contrib

opencv_contrib官方下载地址,选择opencv对应的contrib版本,例如opencv4.8.0对应就是opencv_contrib-4.8.0.zip。下载后直接解压。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第5张图片


CMake编译

  1. 打开CMake,where is the source code是Opencv sources(博主是opencv-4.8.0)的文件夹位置,where to build the binaries是编译opencv保存的文件夹位置(自定义),最后点左下角Configure。
    【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第6张图片
  2. 选择对应vs的版本(博主是vs2019),系统选择x64,最后点右下角Finish。【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第7张图片
  3. 显示Configuring done后,在Search搜索框搜索带cuda的关键字,全部勾选。
    【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第8张图片
  4. Search搜索框搜索OPENCV_EXTRA_MODULES_PATH,添加解压的opencv_contrib中的modules的路径,再搜索并勾选OPENCV_ENABLE_NONFREE和 ENABLE_FAST_MATH选项。【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第9张图片
  5. 将build_opencv_world选上,这可以将所有opencv的库都编译在一起,不需要自己手动选择添加每个小模块,但是具体的工程又不建议这种全家桶,再次点击Configure。【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第10张图片
  6. 显示Configuring done后,将CUDA_ARCH_BIN显卡算力内容改成自己显卡的算力。官网查看显卡算力地址,删除小于自己显卡算力的部分,再次点击Configure。
    【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第11张图片
  7. 显示Configuring done后,点击generate,显示generating done,成功完成cmake编译,在输出的opencv保存文件夹位置中存在就生成了OpenCV.sln文件。
    【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第12张图片

cmake编译过程是会从githup上下载数据,但是一般都会出现下载失败的情况,这里建议读者先跳到【可能出现的问题】这一小节,来确认是不是自己也出现了下载失败的情况。


VS2019编译

  1. 使用VS2019 (以管理员方式运行) 打开刚刚编译工程OpenCV.sln,在release|x64模式下,在解决方案资源管理器—>CMakeTargets—>右键点击ALL_BUILD–>生成。【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第13张图片
  2. 同样在release|x64模式下,在解决方案资源管理器—>CMakeTargets—>右键点击INSTALL–>生成。
    【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第14张图片

编译完成后在where to build the binaries位置的install文件夹内生成以下内容。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第15张图片


可能出现的问题

cmake编译过程中可能出现的问题

cmake编译出现Download failed的问题。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第16张图片

在where to build the binaries位置里面有个CMakeDownloadLog.txt,将里面下载链接复制到浏览器进行下载,

将其和where is the source code里面的.cache文件夹里面内容相对应,下图是下载失败时候,文件大小是0KB,手动下载完成后进行替换,对于部分文件则需要从网页复制文本内容到其中。

注意用来替换的文件的名称要与对应空文件的名称保持一致。

【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第17张图片
将整个.cache都用同样的方式进行处理。
【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程_第18张图片
强调一点,出现这种问题,可以暂时先走完CMake编译过程,因为每一次Configuring都会有新的下载内容,然后再一次性将.cache的内容进行完整的替换,最后进行Configuring和Generate。

VS2019编译过程中可能出现的问题

通常是对于部分资源,vs2019没有管理员操作权限,因此只需要用管理员身份重新打开进行操作即可。

测试使用GPU

这里用一段简单的c++代码验证安装完成的opencv是否支持gpu设备。

#include 
#include 
int main() {
    // 检查是否支持CUDA
    if (cv::cuda::getCudaEnabledDeviceCount()) {
        std::cout << "检测到支持CUDA的设备数量" << cv::cuda::getCudaEnabledDeviceCount() <<std::endl;
    }
    else {
        std::cout << "未检测到支持CUDA的设备" << std::endl;
    }
    return 0;
}

验证成功,oepncv-cuda版本源码编译成功。


总结

尽可能简单、详细的介绍windows10下opencv4.8.0-cuda版本用源码进行编译的详细流程。

你可能感兴趣的:(opencv,opencv,人工智能,计算机视觉)