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

目录

系统配置:

配置步骤:

常见问题:


系统配置:

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的根目录下:

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第1张图片

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

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第2张图片

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

 Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第3张图片

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

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第4张图片

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

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第5张图片

配置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完成后会有许多新的模块出现:

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第6张图片

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

 此外可以勾选CUDA_FAST_MATH选项

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

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第7张图片

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第8张图片

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

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

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第9张图片

 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的函数,如下图所示。Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第10张图片

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

Win10 配置 VS2019 + Intel MKL + opencv4.5 + opencv_contribute + CUDA10.2_第11张图片

 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

你可能感兴趣的:(软件配置,c++,opencv)