当前位置: 代码网 > 科技>操作系统>Windows > 【opencv】【GPU】windows10下opencv4.8.0-cuda C++版本源码编译教程

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

2024年08月06日 Windows 我要评论
【opencv】【GPU】windows10下opencv4.8.0-cuda C++版本源码编译教程

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


前言

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


准备工具

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

cuda/cudnn

安装cuda、cudnn可以参考此前博主的【】,因为对于新手来说,需要注意的细节比较多,这里不浪费篇幅重复讲述了。

cmake

cmake官方下载地址,下载cmake-3.27.7-windows-x86_64.msi。

添加到环境和安装路径博主根据自身情况作出了修改,其他都是默认安装。

出现以下界面安装成功。

opencv4.8.0

opencv官方下载地址,下载opencv – 4.8.0 sources,下载解压opencv-4.8.0.zip。

opencv_contrib

opencv_contrib官方下载地址,选择opencv对应的contrib版本,例如opencv4.8.0对应就是opencv_contrib-4.8.0.zip。下载后直接解压。


cmake编译

  1. 打开cmake,where is the source code是opencv sources(博主是opencv-4.8.0)的文件夹位置,where to build the binaries是编译opencv保存的文件夹位置(自定义),在左下角第一次点击configure。
  2. 选择对应vs的版本(博主是vs2019),系统选择x64,最后点右下角finish。
  3. 显示configuring done后,在search搜索框搜索带cuda的关键字,全部勾选。
  4. search搜索框搜索opencv_extra_modules_path,添加解压的opencv_contrib中的modules的路径,再搜索并勾选opencv_enable_nonfree选项。
  5. build_opencv_world可以将所有opencv的库都打包编译在一起,后续配置c++的opencv环境时不需要自己手动选择添加每个小模块,但是具体的工程又不建议这种模式。
  6. 对于python、java、js、tests相关选项的选择,用search搜索框分别搜索“python”,“java”,“js”,“tests”,根据需要选中和取消相关选项,默认都是选中的,博主只需要c++相关的,因此都取消了,第二次点击configure。
  7. 显示configuring done后,将cuda_arch_bin显卡算力内容改成自己显卡的算力。官网查看显卡算力地址,删除小于自己显卡算力的部分,再搜索并勾选enable_fast_math选项,第三次点击configure。
  8. 显示configuring done后,点击generate,显示generating done,成功完成cmake编译,在输出的opencv保存文件夹位置中存在就生成了opencv.sln文件。

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


vs2019编译

  1. 使用vs2019 (以管理员方式运行) 打开刚刚编译工程opencv.sln,在release|x64模式下,在解决方案资源管理器—>cmaketargets—>右键点击all_build–>生成。
  2. 同样在release|x64模式下,在解决方案资源管理器—>cmaketargets—>右键点击install–>生成。

编译完成后在where to build the binaries位置的install文件夹内生成以下内容。


可能出现的问题

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

cmake编译出现download failed的问题。

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

将其和where is the source code里面的.cache文件夹里面内容相对应,下图是下载失败时候,文件大小是0kb,手动下载完成后进行替换。


对于部分文件则需要将网页以另存为的方式进行替换,注意一定不要以复制网页内容粘贴到空文件的方式进行替换,这是无效的的。

将整个.cache都用同样的方式进行处理。

强调一点,出现这种问题,可以暂时先走完cmake编译过程,因为每一次configuring都会有新的下载内容,然后再一次性将.cache的内容进行完整的替换,最后进行configuring和generate。
这里博主提供自己的【.cache百度云 ,提取码:ctl6 】

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

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


测试使用gpu

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

#include <opencv2/opencv.hpp>
#include <opencv2/core/cuda.hpp>
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下c++版本opencv4.8.0-cuda版本用源码进行编译的详细流程。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com