Opencv系列1.2--实例介绍

本文是Opencv系列教程的第一部分,通过实例介绍了Opencv的基本操作,包括读取显示图片、视频,视频快进快退,简易和稍难的图像变换,从相机输入以及写入视频。详细讲解了头文件的包含,以及使用VideoCapture和VideoWriter对象的操作。
摘要由CSDN通过智能技术生成

更多更详细的文章请关注微信公众号:SLAM之路

本部分通过三个简单实例,介绍Opencv程序的整体架构,并介绍简易的读取可写入方法等基本操作,认识一些基本的库;

0、头文件include

1、读取显示图片

2、读取显示视频

3、视频快进快退

4、简易变换

5、稍难变换

6、从相机输入

7、写视频

0、头文件include

C语言前段包含了头文件,而Opencv的库文件通过include构造了模块化的函数库,可根据实际应用情况进行选择,以提高运编译速度;或者使用总的文件库,包含了OpenCV2每个函数库,include/opencv2/opencv.hpp;

#include "opencv2/core/core_c.h" :C语言数据结构和算法函数库
#include "opencv2/core/core.hpp" :C++数据结构和算法函数库

#include "opencv2/highgui/highgui_c.h"C图像显示/滑动/鼠标交互

#include "opencv2/highgui/highgui.hpp" C++显示/滑动/鼠标交互

#include "opencv2/imgproc/imgproc_c.h" C语言图像处理函数库

#include "opencv2/imgproc/imgproc.hpp"C++图像处理函数库

#include "opencv2/flann/miniflann.hpp" 最近邻匹配函数库

#include "opencv2/video/photo.hpp" 面向处理和恢复图像的函数库

#include "opencv2/video/video.hpp" 视频跟踪及背景分割函数库

#include "opencv2/features2d/features2d.hpp" 二维特征跟踪支持库

#include "opencv2/objdetect/objdetect.hpp" 面部探测

#include "opencv2/calib3d/calib3d.hpp" 3D标定

#include "opencv2/ml/ml.hpp" 机器学习

 

1、读取显示图片

#include<opencv2/opencv.hpp> #inlude every supported opencv function
//也可以使用具体的函数库#include "opencv2/highgui/highgui.hpp"//Opencv的函数都存在于一个命名空间:cv,为了调用函数必须使用cv::格式//为避免这种繁琐写法,可以在程序开始使用using namespace cv;即可省略cv::
int main(int argc, char** arvv{
  cv::Mat img = cv::imread(argv[1],-1);  //cv::Mat 默认照片格式,-1表示灰度图像,使用这种数据结构处理各种图像:单通道、多通道、整型浮点型数据; //cv::imread()可读取BMP/DIB/JPEG/JPE/PNG等等图片,并根据图像数据结构分配内存。 if(img.empty())return -1;              //判断图像是否为空
cv::namedWindow("Example1",cv::WINDOW_AUTOSIZE);//打开窗口,定义窗口性质:窗口标题名及大小(0:表示固定窗口)
cv::imshow("Example1",img);             //图像名称,必须与namedWindow一致;cv::waitKey(0);                         //图像框显示时间,0表示始终直到其他操作;正数表示停留时间(毫秒);
cv::destroyWindow("Example1");          //关掉图相框,重新分配内存;当程序复杂时,应当合理运用
return 0;)

2、读取显示视频

本质上是按顺序读取图片,即增加一个循环并决定何时循环结束;

#include <iostream>#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"
int main(int argc, char** argv) {
  
    cv::namedWindow("Example3", 0);    //创建显示窗口,名字叫Example3,可自由变换大小            cv::VideoCapture cap;    //cv::VideoCapture视频捕捉对象,该对象可打开关闭多种ffmpe
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值