OpenCV编程初探(显示图像和视频)

@[TOC]OpenCV初探OpenCV初探作为一名正在学习计算机视觉但是编程基础不太好的小白,在学习专业的一些知识的时候我感觉到很吃力,同时也花了很多时间来学习新的东西,不仅是我,同专业的同学们也存在这样或者那样的问题,所以我想到记录一下自己学习的心得,同时也是对所学知识的巩固和总结。阅读此专栏需要对C++有基本的了解,并且已经安装配置好了OpenCV。笔者选用的开发环境为OpenCV4.4.0+VS2019。该专栏记录的是学习OpenCV(C++)的心得,主要从实际操作方面入手,希望能够对大家有所
摘要由CSDN通过智能技术生成

@[TOC]OpenCV初探

OpenCV初探

作为一名正在学习计算机视觉但是编程基础不太好的小白,在学习专业的一些知识的时候我感觉到很吃力,同时也花了很多时间来学习新的东西,不仅是我,同专业的同学们也存在这样或者那样的问题,所以我想到记录一下自己学习的心得,同时也是对所学知识的巩固和总结。阅读此专栏需要对C++有基本的了解,并且已经安装配置好了OpenCV。笔者选用的开发环境为OpenCV4.4.0+VS2019。
该专栏记录的是学习OpenCV(C++)的心得,主要从实际操作方面入手,希望能够对大家有所帮助,如果有任何的错误或者疑问都欢迎交流。

第一个程序:显示图片

显示图像是OpenCV最简单最基本的程序,需要使用到imread函数载入图片到图像存储数据结构Mat(类似于int,Mat用来定义图像文件)中,然后用imshow函数显示即可,具体代码实现如下:

#include<opencv2/opencv.hpp>
int main()
{
	cv::Mat img;
	img = cv::imread("1.jpg");//载入图片“1.jpg”该图像需包含在工程文件路径中,或者在引号内输入指定路径
	cv::imshow("Picture", img);//显示图片
	cv::waitKey(0);//等待任意键按下
	return 0;
}

程序的运行结果如下:
在这里插入图片描述

第二个程序:对图像进行均值滤波

均值滤波使用到的是blur函数,以下是blur函数的声明:

CV_EXPORTS_W void blur( InputArray src, OutputArray dst,
                        Size ksize, Point anchor = Point(-1,-1),
                        int borderType = BORDER_DEFAULT );

第一个参数为输入图像,第二个参数为输出图像,第三个参数是均值滤波器的大小,接下来我们对前文中显示图像做一个均值滤波处理,模板大小为7*7:

#include<opencv2/opencv.hpp>
int main()
{
	cv::Mat img;
	cv::Mat dst;
	img = cv::imread("1.jpg");//载入图片“1.jpg”该图像需包含在工程文件路径中,或者在引号内输入指定路径
	cv::blur(img, dst, cv::Size(7, 7));//模板为7*7的均值滤波操作
	cv::imshow("Picture", dst);//显示图片
	cv::waitKey(0);//等待任意键按下
	return 0;
}

以下是经过均值滤波后得到的图像:
在这里插入图片描述

第三个程序:读取并播放视频

OpenCV提供了VideoCapture类,用于对视频进行读取显示,以及调用摄像头。而在OpenCV上显示视频,需要将视频一帧一帧用图像显示出来。
使用VideoCapture读入视频的方法有两种,这两种方法都是可行的:
(1)先实例化再初始化:
VideoCapture Capture;
capture.open(“1.mp4”);
(2)在实例化的同时进行初始化:
VideoCapture capture(“1.mp4”);
类似于"int a;a=1;"和"int a=1;"的区别。
接下来将用具体的事例说明如何读取和播放视频:

 #include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
	VideoCapture cap;
	cap.open("1.mp4");//读入视频
	while (1) {
		Mat frame;//储存每一帧的图像
		cap >> frame;//读取当前帧
		imshow("Video", frame);//显示当前帧
		waitKey(10);//等待10ms,若无键盘输入进入下一循环
	}
}

同样,在程序的工程文件中需含有对应的视频文件,下面是运行结果(这销魂的Mario):
(这销魂的马里奥)

结语

OpenCV是一个很有意思的东西,反正我已经上头了()。下一篇文章我们聊聊HighGUI模块。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值