自行编译OpenCV源码步骤

1、下载OpenCV源码:

Releases · opencv/opencv · GitHub

2、下载opencv_contrib源码:

GitHub - opencv/opencv_contrib: Repository for OpenCV's extra modules

3、下载安装CMake

Download CMake

4、解压OpenCV及opencv_contrib源码至英文目录

5、CMake GUI操作

  • 选择源码目录

  • 选择构建目录

  • 点击config配置,等待初始化
    • 初始化过程若出现下载失败的情况,则复制下载地址,自行下载后放置到 [opencv源文件目录]\.cache\[模块名] 文件夹下,并将文件名改为,[文件MD5]-文件名。
      如:bdfbd1efb295f3e54c07d2cb7a843bf9-opencv_videoio_ffmpeg.dll 放置于 E:\opencv-4.10.0\.cache\ffmpeg 文件夹中。
    • 获取文件MD5方式:
      命令行输入 certutil -hashfile [文件名] MD5
  • 根据需要选择模块
    一般来说:
    OPENCV_EXTRA_MODULES_PATH: 填写opencv_contrib源码中modules文件夹路径,如:E:/opencv_contrib-4.10.0/modules
    OPENCV_GENERATE_SETUPVARS:关闭,避免错误
    JAVA相关的(在Search栏搜索):关闭,节省时间
    WITH_TBB:打开,指令集加速
    OPENCV_ENABLE_NONFREE:打开,为使用SURF和SIFT
    BUILD_opencv_world:打开,仅形成一个DLL,方便后续使用
  • 再次点击config配置,并继续根据出现的下载错误进行人工下载
  • 重复上一步直到所有错误解决,点击Generate生成VS项目

6、VS项目操作

  • 打开VS项目
  • 右击CMakeTargets/ALL_BUILD,生成

  • ALL_BUILD生成要特别久,生成完毕后对INSTALL也进行生成。 

  • PS:建议Release和Debug环境都编译,这样才能都生成opencv_worldXXXX.dll 和 opencv_worldXXXXd.dll,用于项目的两种配置。
  • PS:期间遇到MSB3073错误见:【解决】OpenCV编译INSTALL时MSB3037命令setlocal错误-CSDN博客
  • PS:LNK1104 无法打开文件“pythonXXX_d.lib” 
    打开OpenCV编译项目/bindings/opencv_python3/外部依赖项/pyconfig.h,修改文中的pythonXXX_d.lib为pythonXXX.lib;注释掉define Py_DEBUG;
  • PS:编译中提示NVCC的编译使用了未被支持的VS
    一般是VS太新,就像CMAKE写支持VS2022,但实际有更新的VS2022,就不支持了。
    需要修改C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\[版本]\include\crt\host_config.h中对_MSC_VER的判定,把上限改得比自己的大一点,自己的_MSC_VER在CMAKE输出的地方能看到。

 7、使用到OpenCV的项目操作

  • 添加包含目录

  • 添加库目录

  • 添加附加依赖项(Release配置添加的是opencv_worldXXXX.lib,Debug配置添加的是opencv_worldXXXXd.lib)

  • 应用程序运行时提示找不到opencv_worldXXXX.dll或opencv_worldXXXXd.dll
    到 [opencv源码目录]\build\install\x64\vc17\bin 下寻找并根据需要放到项目的Release和Debug目录中

PS:编译中用到的OpenCV相关资源

用于OpenCV4.10.0,一直下载失败的可以将.cach解压后放在opencv-4.10.0路径下再点config,就不会卡下载了(也许吧)。

https://download.csdn.net/download/weixin_50648158/89468656

PPS:编译好的bin和install

不确定别的电脑是否能用,实在不行的可以试试。

https://download.csdn.net/download/weixin_50648158/89466554

基于OpenCV4.10.0,相比于原始版,开启了CUDA(cudacodec、NVCUVENC、NVCUVID除外,好像现在不支持了,勾选了配置会失败)、TBB、OpenGL、OpenMP、Fast_Math、CUDA_Fast_Math、Non-free、opencv_world;关闭了JAVA相关的模块、SETUPVARS、所有的Test。 Release和Debug都编译了。

CUDA版本:12.0.0

cuDNN版本:8.9.7.29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值