在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境...

搭建openCV3环境

第一步:下载CMake并配置系统环境。

到官网下载最新版本的CMake:https://cmake.org/download/ 1d495177741c246320b582eb6e6cae16.png  因为官网下载太慢,我们到其他地方下一个版本3.10,百度自己下载。 e8f3cbcb17937a85fa0461d271ce1423.png   解压到当前文件夹,将cmake添加进系统PAPH    在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第1张图片  使用命令行,输入cmake–version查看,显示版本号表示添加路径成功。   在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第2张图片

第二步:下载openCV3.4.1。

下载源码,目前最新的版本,我们使用源码编译,编译源码这是作为使用开源库的基本技能。下载地址:https://www.opencv.org/releases.html 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第3张图片 03d83fdb839db1d4d45e2efce8b43e73.png将其赋值到F盘。解压到当前文件夹,打开目录下CMakeList.txt可以大致判断出需要的CMake版本。 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第4张图片

步骤三:使用CMake编译openCV的mingw版本。

点击cmake-gui.exe 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第5张图片 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第6张图片按照如下操作: 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第7张图片会出现如下错误: 2e4280f8eb01c92e395197107d9b8fe2.png这是需要添加环境变量,于是我们重新配置,先点击菜单File删除缓存。 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第8张图片然后重新配置: 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第9张图片 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第10张图片搜索CMAKE_MAKE_PROGRAM,填入mingw32-make.exe的地址 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第11张图片配置编译的版本 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第12张图片漫长的“Configure”等待 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第13张图片配置成功,如下图: 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第14张图片点击“Generate”生成mingw的工程 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第15张图片配置成功。

第四步:使用mingw32-make编译openCV3.4.1库

打开命令行,到openCV-3.4.1的 build目录下(之前为cmake专门创建的) 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第16张图片出现错误 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第17张图片这是因为c++11引入了nullptr,所以给make添加参数,笔者直接回到cmake添加: 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第18张图片重新Configure和Generate,然后mingw32-make,正常通过 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第19张图片然后又是很漫长的编译过程,出现错误 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第20张图片这回应该找到源码 modules\videoio\src\cap_dshow.cpp,搜索#include“DShow.h” 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第21张图片修改后,无需cmake,直接继续回到cmd编译,通过。 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第22张图片编译成功后: 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第23张图片然后安装 d097259c80a99da54c7fa1c7483ef6ff.png 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第24张图片

第五步:搭建qt+opencv3.4.1的工程模版

将以下文件,复制到工程摸模块目录下: 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第25张图片将以下的库文件,复制到工程目录下(两种添加的方法):

方法一:添加.a(推荐方法二,此方法复制移动位置可能会存在问题-运行错误)

在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第26张图片

方法二:直接添加bin目录下的库(可运行库),笔者推荐这种方法

在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第27张图片

第六步:编写程序,测试

在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第28张图片经过测试: 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第29张图片

搭建openCV2环境

使用已编好的库openCV2

第一步:下载openCV

      地址:https://sourceforge.net/projects/opencvlibrary/       因下载太慢,换了一个2.4.10版本的,地址:http://101.110.118.68/jaist.dl.sourceforge.net/project/opencvlibrary/opencv-win/2.4.10/opencv-2.4.10.exe

第二步:解压opencv到D:/opencv-2.4.10,头文件的文件夹:

D:\opencv-2.4.10\opencv\build\include\opencv
D:\opencv-2.4.10\opencv\build\include\opencv2
库文件夹下的库,分为发布版本和调试版本(带d)
LIBS += -LD:\opencv-2.4.10\opencv\build\x86\vc10\lib \        -lopencv_calib3d2410 \        -lopencv_contrib2410 \        -lopencv_core2410 \        -lopencv_features2d2410 \        -lopencv_flann2410 \        -lopencv_gpu2410 \        -lopencv_highgui2410 \        -lopencv_imgproc2410 \        -lopencv_legacy2410 \        -lopencv_ml2410 \        -lopencv_nonfree2410 \        -lopencv_objdetect2410 \        -lopencv_ocl2410 \        -lopencv_photo2410 \        -lopencv_stitching2410 \        -lopencv_superres2410 \        -lopencv_ts2410 \        -lopencv_video2410 \        -lopencv_videostab2410
各种尝试找不到opencv2的函数,所以选择重新编译(建议读者重编)。

重新编译opencv2(17年使用的Qt5.2.0)

直接使用qtcreator进行cmake,这是对于qt更便捷的方法(与配置opencv3不一样的地方,笔者强烈使用opencv3的配置方法较为通用,编译其他版本或者与编译与qt完全无关的版本都适用)

步骤一:下载cmake,安装cmake,特别注意要加入环境变量;

步骤二:打开qtcreator,打开工程,直接来打开CMakeLists文件;

在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第30张图片

步骤三:打开后会会进行解析配置,解析配置完成,成为了Qt工程;

步骤四:作为qt工程直接编译;

在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第31张图片 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第32张图片

步骤五:编译后的源代码和文件夹中的include里面的头文件大部分都不见了,但是opencv下还有一个build,从里面获取头文件;

步骤六:从编译后source-build/bin中获取.dll

Qt使用Opencv 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第33张图片 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第34张图片

显示图片运行结果

截图直接截的qt帮助文件 在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境..._第35张图片上一篇:无下一篇: 《OpenCV开发笔记(一):OpenCV介绍、编译》

你可能感兴趣的:(在C++上如何使用OpenCV头文件是什么_OpenCV开发笔记():使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境...)