背景
准备工作编译过程编译问题分析
背景项目背景是视觉定位引导机械臂,采用opencv开源算法做相机标定、手眼标定。由于官网安装包安装后只有x64版本库,故下载源码自行编译32位debug/release版本库。
准备工作- 安装Visual Studio ,最好使用vs2017编译,我个人在编译opencv340的时候用的vs2013,在编译opencv450时用过vs2015(失败,因为部分C++11标准编译器不支持 ),然后采用vs2017成功编译;安装CMAKE工具,link.,我编译的时候用的3.15.2版本;下载相应版本源码 ,link.;解压下载的源码,我个人将解压后的源码文件放在source文件夹下,并同目录建立了一个build文件夹,如图:以上工具、源码、编译中需要下载的文件、最终编译生成的32位/64位的debug/release版本库(最终编译库好像上传失败cry------),都将在百度云盘中共享opencv340: 链接:https://pan.baidu.com/s/1CfU9AYXOEvCRYruzSf4Bvg
提取码:8r4mopencv450: 链接:https://pan.baidu.com/s/1doaFqni8OtaFFvjHhJLlSQ
提取码:5few工具: 链接:https://pan.baidu.com/s/19fOnuAWsHwj12vh-IdyItw
提取码:7upa
- 打开cmake工具,添加源目录和编译后文件的存放目录
点击configure,选择配置编译器和编译的opencv库的位数【win32】,点击finish:点击configure,选择配置编译器和编译的opencv库的位数【win32】,点击finish:勾选“BUILD_opencv_world”,取消勾选“BUILD_CUDA_STUBS”,取消勾选"BUILD_JAVA"添加下载好的“D:opencvopencv450opencv_contrib-4.5.0modules”到OPENCV_EXTRA_MODULES_PATH。(根据实际需要,前面有讲到我个人项目背景,暂时未用到扩展模块,故未编译这里)OPENCV_EXTRA_MODULES_PATH配置说明:由于OpenCV功能越来越臃肿,OpenCV3改变了项目架构,使用内核+插件的架构形式。 因此,OpenCV从2.x到4.x是一个很大的转变,对于很多功能不完善、性能不稳定的模块,都被放到了extra_modules(扩展模块)里面了。在Github中,除了存放正式版OpenCV的主仓库和新增加的OpenCV_extra仓库外,还添加了一个OpenCV_contrib的全新仓库,功能有:脸部识别、文本识别、边缘检测、追踪算法等,里面存放的是功能未稳定的代码,如果需要使用这些功能,就需要重新进行编译。配置完成后,点击Generate,等待完成,需要一定时间。可能报一些错误,我遇到的基本上是网络下载库失败。
- 无法访问国外的网站导致下载超时而失败,首先打开文件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 #
- 下载文件那一行中找到下载地址和存放地址即可,手动下载并存放到相应目录。本人在百度云盘中分享了opencv340和opencv450对应的文件,注意编译不同版本文件不同,不能混用。操作完成后再次点击Generate,等待完成。



