Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2

本文档详述了在Windows 10上配置OpenCV4,同时集成CUDA和Intel OneAPI的步骤,包括安装依赖、CMake配置、解决编译问题。遇到的常见问题如函数缺失和下载失败,提供了下载资源的解决方案。
摘要由CSDN通过智能技术生成

目录

系统配置:

配置步骤:

常见问题:


系统配置:

win10 家庭版

Vsual Studio 2019 community

Cmake 3.22

Intel OneAPI 2022

opencv 4

CUDA 10.2

CUDNN 8.2

配置步骤:

1.安装好基本依赖项(VS2019,OneAPI,CUDA等),在github上使用如下指令下载opencv4源码以及对应的opencv_contrib。

git clone --recursive -b 4.x https://github.com/opencv/opencv.git
git clone --recursive -b 4.x https://github.com/opencv/opencv_contrib.git

本文将opencv_contrib放在opencv的根目录下:

 2.打开Cmake,选择opencv路径,编译在opencv目录下的build文件夹中,点击configure按钮进行编译。

在弹出的窗口中选择VS2019编译器和x64平台,点击finish按钮,等待第一次编译完成。

 

3.第一次编译完成后一般会出现以下界面,其中configue done 表示编译成功:

 4.接下来需要配置MKL,CUDA等环境。首先选择BUILD_opencv_world是为了最后生成的dll文件能够整合成一个,避免生成太多给配置环境带来麻烦。

配置MKL相关模块,MKL目录在默认安装的情况下会安装在以下路径中:

C:/Program Files (x86)/Intel/oneAPI/mkl/2022.0.3

为了编译opencv_contrib模块,需要勾选OPENCV_ENABLE_NONFREE,并选择opencv_contrib目录,值得注意的是需要选择opencv_contrib/modules目录,否则会找不到对应的模块

勾选编译CUDA加速模块

由于没有安装EIGEN和VTK,因此取消勾选WITH_EIGEN和WITH_VTK。

5. 基本配置完成后,此时LAPACK相关的路径为空

再次点击configue按钮,configue完成后会有许多新的模块出现:

 此时可以发现MKL、TBB以及LAPACK相关路径已经配置完成。

 此外可以勾选CUDA_FAST_MATH选项

6.再次点击configue按钮,等待configue完成,完成后点击generate按钮,生成VS2019的项目工程。

7.点击 Open Project按钮打开项目。选择需要编译的版本,此处以release为例,点击生成项目,等待完成。

8.全部编译成功会出现如下信息:

 9.编译INSTALL工程,可以将生成的opencv_world依赖项安装至build/install目录下。

常见问题:

 1.错误 C2660 “cvtest::createMat”: 函数不接受 5 个参数   opencv_test_cudaarithm    F:\library\opencv455\opencv_contrib\modules\cudaarithm\test\test_gpumat.cpp    414    

 主要原因是官网下载的4.5.5源码中缺少了一个5个参数的createMat的函数,如下图所示。

在github中4.x分支中包含了这个函数,如下图所示。

 2.在Cmake过程中出现FFMPEG等依赖文件或者模型文件下载失败,有两种解决方法,其一比较简单,在此处下载依赖文件,放至Cmake中设置的下载目录中,如下图所示

 第二种麻烦一些,打开build目录下的CMakeDownloadLog.txt文件,查看其中的下载信息,以opencv_videoio_ffmpeg_64.dll为例,如下所示,文件中给出了opencv_videoio_ffmpeg_64.dll的下载地址https://raw.githubusercontent.com/opencv/opencv_3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/opencv_videoio_ffmpeg_64.dll此时,只需将该链接复制至浏览器的地址栏即可下载,下载完成后需要将文件名修改为20deefbfe023c8b8d11a52e5a6527c6a-opencv_videoio_ffmpeg_64.dll。此外,值得注意的是ffmpeg_version.cmake的链接会直接显示出文件的内容,此时需要右键保存为ffmpeg_version.cmake文件或者ffmpeg_version.cmake.txt文件,如果自行创建ffmpeg_version.cmake无法通过md5的检查。

#do_copy "opencv_videoio_ffmpeg_64.dll" "20deefbfe023c8b8d11a52e5a6527c6a" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/opencv_videoio_ffmpeg_64.dll" "F:/library/opencv455/build/3rdparty/ffmpeg"
#missing "F:/library/opencv455/build/3rdparty/ffmpeg/opencv_videoio_ffmpeg_64.dll"
#check_md5 "F:/library/opencv455/.cache/ffmpeg/20deefbfe023c8b8d11a52e5a6527c6a-opencv_videoio_ffmpeg_64.dll"
#mismatch_md5 "F:/library/opencv455/.cache/ffmpeg/20deefbfe023c8b8d11a52e5a6527c6a-opencv_videoio_ffmpeg_64.dll" "d41d8cd98f00b204e9800998ecf8427e"
#delete "F:/library/opencv455/.cache/ffmpeg/20deefbfe023c8b8d11a52e5a6527c6a-opencv_videoio_ffmpeg_64.dll"
#cmake_download "F:/library/opencv455/.cache/ffmpeg/20deefbfe023c8b8d11a52e5a6527c6a-opencv_videoio_ffmpeg_64.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/opencv_videoio_ffmpeg_64.dll"
#try 1
# timeout on name lookup is not supported
# getaddrinfo(3) failed for raw.githubusercontent.com:443
# Could not resolve host: raw.githubusercontent.com
# Closing connection 0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空下的仰望者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值