OpenCV开发笔记(一):OpenCV介绍、编译
若该文为原创文章,未经允许不得转载
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100072151
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中..
OpenCV开发专栏(点击传送门)
上一篇:《OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境》
下一篇:《OpenCV开发笔记(二):cvui交互界面》
前言
图像视频开发使用到OpenCV,选择版本为OpenCV3.4.1,整理了去年的笔记。
OpenCV编译相关博客
《OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境》
《OpenCV开发笔记(一):OpenCV介绍、编译》
《OpenCV开发笔记(十一):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-mingw32编译》
《OpenCV开发笔记(十二):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-msvc2015编译(opencv3.4.0、cuda9.0、VS2015)》
《OpenCV开发笔记(三十四):红胖子带你傻瓜式编译Qt+openCV3.4.1+opencv_contrib(全网最浅显易懂)》
《OpenCV开发笔记(七十):红胖子带你傻瓜式编译VS2017x64版本的openCV4》
OpenCV介绍
OpenCV(开源计算机视觉库)是一个开源的计算机视觉和机器学习软件库。OpenCV旨在为计算机视觉应用提供通用基础设施,并加速商业产品中机器感知的使用。作为BSD许可产品,OpenCV使企业可以轻松利用和修改代码。
该库拥有超过2500种优化算法,其中包括一套全面的经典和最先进的计算机视觉和机器学习算法。这些算法可用于检测和识别面部,识别物体,对视频中的人体动作进行分类,跟踪相机移动,跟踪移动物体,提取物体的3D模型,从立体相机生成3D点云,将图像拼接在一起以产生高分辨率整个场景的图像,从图像数据库中找到相似的图像,从使用闪光灯拍摄的图像中移除红眼,跟踪眼睛运动,识别风景并建立标记以用增强现实覆盖它等.OpenCV拥有超过47,000名用户社区和估计下载量超过 1800万。该图书馆广泛用于公司,研究团体和政府机构。
除了谷歌,雅虎,微软,英特尔,IBM,索尼,本田,丰田等知名公司,还有许多创业公司,如Applied Minds,VideoSurf和Zeitera,它们广泛使用OpenCV。OpenCV的部署用途涵盖了将街景图像拼接在一起,检测以色列监控视频中的入侵,监控中国的矿山设备,帮助机器人在Willow Garage中导航和拾取物体,检测欧洲游泳池溺水事故,运行互动艺术西班牙和纽约在土耳其检查跑道上的残骸,检查世界各地工厂的产品标签,以便在日本进行快速面部检测。
它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux, Android 和Mac OS。OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令。 目前正在积极开发功能齐全的 CUDA和 OpenCL接口。有超过500种算法和大约10倍的组成或支持这些算法的函数。OpenCV本身是用C ++编写的,它有一个模板化的接口,可以与STL容器无缝协作。
OpenCV下载
下载的是OpenCV3.4.1版本。
官网:Home - OpenCV
当前最新版本为3.4.1。(2018年年初的)
下载地址:Releases - OpenCV
下载地址
Github还真难下,各种网关设置就是慢,所以,提供下载地址如下:
opencv3.4.0_3.4.1和opencv_contrib-3.4.0和opencv_contrib3.4.1.rar-C++代码类资源-CSDN下载
OpenCV编译(2019年8月25日补充)
步骤一:解压到编译文件夹
步骤二:CMake配置
有点小漫长,主要下载了ffmpeg的2个dll花了部分时间。
(注意:编译要编译Release版本,查看“入坑一”)
步骤三:配置withQt
配置一下,会在出现几个变量,更改如下图:
步骤四:命令行编译
步骤五:编译错误“identifier 'nullptr' is a keyword in C++11”
出现c++11的支持,需要支持c++11,如下图:
配置CMake,继续编译。
步骤六:出现错误“sprint_instead_use_StringCbPrintxxxxxx
找到源码modules\videoio\src\cap_dshow.cpp,搜索#include “DShow.h”,添加宏定义:
继续编译。
步骤七:编译成功
模块化
模板测试
代码
#include <QApplication>#include "opencv/highgui.h"
#include "opencv/cxcore.h"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"using namespace cv;int main(int argc, char *argv[])
{QApplication a(argc, argv);namedWindow("window");waitKey(0);return a.exec();
}
测试结果
入坑
入坑一:工程打开窗口运行当机
解决方法:
重新编译,默认编译的是debug版本,所以要切换到release版本,使用CMake重新配置,如下图:
工程模板:对应版本号v1.0.0
对应版本号v1.0.0
编译OpenCV2(附加)
步骤一:下载openCV
地址:OpenCV download | SourceForge.net
因下载太慢,换了一个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
直接使用QCcreator进行cmake,这是对于qt更便捷的方法(与配置opencv3不一样的地方,笔者强烈使用opencv3的配置方法较为通用,编译其他版本或者与编译与qt完全无关的版本都适用)
步骤一:下载cmake,安装cmake,特别注意要加入环境变量
步骤二:打开qtcreator,打开工程,直接来打开CMakeLists文件
步骤三:打开后会会进行解析配置,解析配置完成,成为了Qt工程
步骤四:作为qt工程直接编译
步骤五:编译后的源代码和文件夹中的include里面的头文件大部分都不见了,但是opencv下还有一个build,从里面获取头文件
步骤六:从编译后source-build/bin中获取.dll
Qt使用Opencv
显示图片运行结果
截图直接截的qt帮助文件
上一篇:《OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境》
下一篇:《OpenCV开发笔记(二):cvui交互界面》
原博主博客地址:长沙红胖子Qt C++ Linux Arm_长沙红胖子_CSDN博客-Qt开发,图形图像处理,OpenCV图像处理领域博主
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:OpenCV开发笔记(一):OpenCV介绍、编译_长沙红胖子Qt C++ Linux Arm-CSDN博客_opencv开发
OpenCV开发笔记(一):OpenCV介绍、编译相关推荐
- OpenCV开发笔记(二):cvui交互界面
若该文为原创文章,未经允许不得转载 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100110016 各位读者,知识无穷而人力有穷, ...
- OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109096211 各位读者,知识无穷而人力有穷 ...
- OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123696821 各位读者,知识无穷而人力有穷 ...
- OpenCV开发笔记(七十二):红胖子8分钟带你使用opencv+dnn+tensorFlow识别物体
本博客是转载的 本文章源博客地址:https://blog.csdn.net/qq21497936/article/details/109194717 各位读者,知识无穷而人力有穷,要么改需求,要么找 ...
- OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)
若该文为原创文章,转载请注明出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/107837715 各位读者,知识无穷而人力有穷,要 ...
- Qt之手写识别开发笔记:Zinnia介绍、编译、使用以及Demo
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
- OpenCV学习笔记#002 OpenCV相机检校例程运行
OpenCV学习笔记#002 OpenCV相机检校例程运行 OpenCV学习笔记#002 OpenCV相机检校例程运行 所需文件 修改文件 修改in_VID5.xml 修改VID5.xml VS 设置 ...
- OpenCV开发笔记(五十八):红胖子8分钟带你深入了解图像的矩(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
- OpenCV开发笔记(五十五):红胖子8分钟带你深入了解Haar、LBP特征以及级联分类器识别过程(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
最新文章
- flat在java中的含义_java – 在flatingBy中使用flatMap的优雅方法
- numa节点_漫步云端NUMA调度
- python中对多态和多态性的理解
- CSS样式:覆盖规则
- YUI事件体系之Y.EventTarget
- 转 ajax.dll 与 ajaxpro.dll的用法
- iOS开发之企业级账号的使用注意的坑
- linux学习:图书管理系统
- 3D打印技术到底有多强大?
- 求两函数交点c语言,怎样求两个函数关系式的交点坐标
- WordPress主题制作全过程(八):制作index.php
- linux 下载工具
- 接口测试+自动化接口测试详解入门到精通
- java append()_append()方法的坑
- 联想手机里的照片误删怎么恢复
- c语言中10的6次方阶乘运算,阶乘的运算方法
- 关于mybatis的分页实现
- 什么是同城冗余ZRS和本地冗余LRS?阿里云对象存储OSS详解
- vue的ref,mounted和this.$nextTick
- 【2018虚拟现实】VR眼镜不只是当下,它就是未来!不仅是VR小电影和游戏!