OpenCv及OnnxRuntime Visual Studio配置

OpenCv及OnnxRuntime Visual Studio配置

期期 0 2025-06-30

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

image-gpvr.png

库目录添加

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

参考:

image-jbxy.png

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文件。

image-anlv.png

最后参考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