OpenCv及OnnxRuntime+Cuda配置
1、Cuda安装(推荐11.8)
安装 CUDA Toolkit:链接
安装 cuDNN:链接
- cuDNN 配置步骤:
1. 解压 cuDNN 压缩包
2. 复制文件到 CUDA 目录:
- `cuda/bin` → `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/bin`
- `cuda/include` → `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/include`
- `cuda/lib` → `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2/lib`
2、TensorRT配置及环境变量配置
- 下载地址:`https://developer.nvidia.com/nvidia-tensorrt-8x-download`(选择 GA 版本)
- 配置步骤:
1. 解压 TensorRT 压缩包
2. 复制文件:
- `include` → `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/include`
- `lib/*.lib` → `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/lib/x64`
- `lib/*.dll` → `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/bin`
- 用户变量 PATH 添加:
```
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\lib
```
- 系统变量 PATH 添加:
```
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\lib
C:\qiqi\TensorRT-8.6.1.6\bin ```
3、OpenCv
下载后解压到目录,配置系统环境变量Path
C:\opencv\build\x64\vc16\bin
VS配置解决方案属性包含目录(配置到c/c++)下
C:\opencv\build\include

库目录添加
C:\opencv\build\x64\vc16\lib
链接器附加库目录设置
C:\opencv\build\x64\vc16\lib
输入附加依赖项添加,注意debug环境要用opencv_world4110d.dll
opencv_world4110.lib
运行报错解决:
对于x64平台: 把opencv>build>x64>vc14>bin目录下的所有dll文件拷贝到C盘Windows>System32和SysWow64两个文件夹下。
对于Win32平台: 把opencv>build>x86>vc14>bin目录下的所有dll文件拷贝到C盘Windows>System32和SysWow64两个文件夹下。
测试是否正常,能正常运行即可:
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 创建一个黑色背景的图像(500x500 像素,3通道 BGR)
cv::Mat image(500, 500, CV_8UC3, cv::Scalar(0, 0, 0));
// 在图像中心画一个红色圆
cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(0, 0, 255), -1);
// 显示图像
cv::imshow("OpenCV Test", image);
// 等待按键退出(0 表示无限等待)
cv::waitKey(0);
// 保存图像
cv::imwrite("test_output.jpg", image);
std::cout << "图像已保存为 test_output.jpg" << std::endl;
return 0;
}
4、onnxRuntime
基于cuda11.8 采用onnxRuntime版本为1.17.3,选择这个版本原因是因为同时支持11.8和12的cuda
参考:

https://github.com/microsoft/onnxruntime/releases/tag/v1.17.3
onnxruntime-win-x64-gpu-1.17.3.zip
下载后解压,vs解决方案里面行政C++ 常规附加包含目录
C:\onnxruntime-win-x64-gpu-1.17.3\include
链接器常规附加库目录新增
C:\onnxruntime-win-x64-gpu-1.17.3\lib
链接器输入附加依赖项新增
onnxruntime.lib
onnxruntime_providers_cuda.lib
onnxruntime_providers_shared.lib
onnxruntime_providers_tensorrt.dll
5、打包事项
Vs编译出来的文件 要包含openCv和onnxRuntime的dll文件。

最后参考VS配置
附加依赖项
opencv_world4110.lib
onnxruntime.lib
onnxruntime_providers_cuda.lib
onnxruntime_providers_shared.lib
onnxruntime_providers_tensorrt.lib
C:\TensorRT-8.6.1.6\lib\*.lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\lib\x64\*.lib
附加库目录
C:\TensorRT-8.6.1.6\lib
C:\opencv\build\x64\vc16\lib
C:\onnxruntime-win-x64-gpu-1.17.3\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\lib\x64
附加包含目录
C:\opencv\build\include
C:\TensorRT-8.6.1.6\include
C:\onnxruntime-win-x64-gpu-1.17.3\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include