Opencv3.40/Opencv4.5.0源码编译

Opencv3.40/Opencv4.5.0源码编译

背景

项目背景是视觉定位引导机械臂,采用opencv开源算法做相机标定、手眼标定。由于官网安装包安装后只有x64版本库,故下载源码自行编译32位debug/release版本库

准备工作

  1. 安装Visual Studio ,最好使用vs2017编译,我个人在编译opencv340的时候用的vs2013,在编译opencv450时用过vs2015(失败,因为部分C++11标准编译器不支持 ),然后采用vs2017成功编译;
  2. 安装CMAKE工具link.,我编译的时候用的3.15.2版本;
  3. 下载相应版本源码link.;
  4. 解压下载的源码,我个人将解压后的源码文件放在source文件夹下,并同目录建立了一个build文件夹,如图:在这里插入图片描述
  5. 以上工具、源码、编译中需要下载的文件、最终编译生成的32位/64位的debug/release版本库(最终编译库好像上传失败cry------,若需要可私信),都将在百度云盘中共享
  6. opencv340: 链接:https://pan.baidu.com/s/1CfU9AYXOEvCRYruzSf4Bvg
    提取码:8r4m
  7. opencv450: 链接:https://pan.baidu.com/s/1doaFqni8OtaFFvjHhJLlSQ
    提取码:5few
  8. 工具: 链接:https://pan.baidu.com/s/19fOnuAWsHwj12vh-IdyItw
    提取码:7upa

编译过程

  1. 打开cmake工具,添加源目录和编译后文件的存放目录
    在这里插入图片描述
  2. 点击configure,选择配置编译器和编译的opencv库的位数【win32】,点击finish:在这里插入图片描述
  3. 点击configure,选择配置编译器和编译的opencv库的位数【win32】,点击finish:
  4. 勾选“BUILD_opencv_world”,取消勾选“BUILD_CUDA_STUBS”,取消勾选"BUILD_JAVA"
  5. 添加下载好的“D:\opencv\opencv450\opencv_contrib-4.5.0\modules”到OPENCV_EXTRA_MODULES_PATH,并勾选 OPENCV_EXTRA_NONFREE项,否则在运行SIFT、SURF等函数时会报错;
  6. OPENCV_EXTRA_MODULES_PATH配置说明:由于OpenCV功能越来越臃肿,OpenCV3改变了项目架构,使用内核+插件的架构形式。 因此,OpenCV从2.x到4.x是一个很大的转变,对于很多功能不完善、性能不稳定的模块,都被放到了extra_modules(扩展模块)里面了。在Github中,除了存放正式版OpenCV的主仓库和新增加的OpenCV_extra仓库外,还添加了一个OpenCV_contrib的全新仓库,功能有:脸部识别、文本识别、边缘检测、追踪算法等,里面存放的是功能未稳定的代码,如果需要使用这些功能,就需要重新进行编译。
  7. 配置完成后,点击Generate,等待完成,需要一定时间。可能报一些错误,我遇到的基本上是网络下载库失败。下载云盘里分享的文件,放到日志文件对应的目录下,即可正常通过,具体看下文。

编译问题分析

  1. 无法访问国外的网站导致下载超时而失败,首先打开文件build/CMakeDownloadLog.txt,如下所示:
指定缓存文件夹
#use_cache "/home/user/Project/OpenCV/opencv/.cache"
解压路径
#do_unpack "ippicv_2019_lnx_intel64_general_20180723.tgz" "c0bd78adb4156bbf552c1dfe90599607" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz" "/home/user/Project/OpenCV/build/3rdparty/ippicv"
文件校验
#check_md5 "/home/user/Project/OpenCV/opencv/.cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz"
文件校验失败
#mismatch_md5 "/home/user/Project/OpenCV/opencv/.cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz" "d41d8cd98f00b204e9800998ecf8427e"
删除下载文件
#delete "/home/user/Project/OpenCV/opencv/.cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz"
下载文件
#cmake_download "/home/user/Project/OpenCV/opencv/.cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz"
#   Trying 0.0.0.0...
# TCP_NODELAY set
# connect to 0.0.0.0 port 443 failed: Connection refused
#   Trying ::...
# TCP_NODELAY set
# connect to :: port 443 failed: Connection refused
# Failed to connect to raw.githubusercontent.com port 443: Connection refused
# Closing connection 0
# 
  1. 下载文件那一行中找到下载地址和存放地址即可,手动下载并存放到相应目录。本人在百度云盘中分享了opencv340和opencv450对应的文件,注意编译不同版本文件不同,不能混用。
  2. 操作完成后再次点击Generate,等待完成。 在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值