OpenCV开发笔记(一):OpenCV介绍、编译

若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100072151

目录

前言

OpenCV介绍

OpenCV下载

OpenCV编译(2019年8月25日补充)

步骤一:解压到编译文件夹

步骤二:CMake配置

步骤三:配置withQt

步骤四:命令行编译

步骤五:编译错误“identifier 'nullptr' is a keyword in C++11”

步骤六:出现错误“sprint_instead_use_StringCbPrintxxxxxx

步骤七:编译成功

模块化

模板测试

代码

测试结果

入坑

入坑一:工程打开窗口运行当机

工程模板:对应版本号v1.0.0

 

编译OpenCV2(附加)

步骤一:下载openCV

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

步骤三:重新编译opencv2

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

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

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

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

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

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


 

OpenCV开发专栏

OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境

OpenCV开发笔记(一):OpenCV介绍、编译

OpenCV开发笔记(二):cvui交互界面

OpenCV开发笔记(三):OpenCV图像的概念和基本操作

OpenCV开发笔记(四):OpenCV图片和视频数据的读取与存储

OpenCV开发笔记(五):OpenCV读取与操作摄像头

OpenCV开发笔记(六):OpenCV基础数据结构、颜色转换函数和颜色空间

OpenCV开发笔记(七):OpenCV基础图形绘制

OpenCV开发笔记(八):OpenCV常用操作之计时、缩放、旋转、镜像

OpenCV开发笔记(九):OpenCV区域图像(ROI)和整体、局部图像混合

OpenCV开发笔记(十):OpenCV图像颜色通道分离和图像颜色多通道混合

持续补充中…

        OpenCV开发笔记(一):OpenCV介绍、编译

前言

       图像视频开发使用到OpenCV,选择版本为OpenCV3.4.1,整理了去年的笔记。

 

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版本。

        官网:https://opencv.org/

        当前最新版本为3.4.1。(2018年年初的)

下载地址:https://www.opencv.org/releases.html

 

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

       地址: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

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

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

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

        

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

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

        

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

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

        Qt使用Opencv

        

        显示图片运行结果

        截图直接截的qt帮助文件

         

 

原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100072151

发布了227 篇原创文章 · 获赞 237 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/qq21497936/article/details/100072151