快速上手OpenCV小程序

序言:编写这些小程序有点跟写的意思,也是让新手提前适应OpenCV的基础用法。

文章目录


1、图像显示
2、图像腐蚀
3、blur图像模糊
4、canny边缘检测
5、读取并播放视频

一、图像显示

说明:用imread函数载入到新版本的图像存储数据结构Mat类(后期会详细介绍)中,然后用imshow函数显示即可。

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
	//载入图片
	Mat src = imread("D:\\12.jpg");
	//显示图片
	imshow("原始图", src);
	waitKey(0);
}

在这里插入图片描述

二、图像腐蚀:腐蚀即用图像中的暗色部分“腐蚀”掉图像中的高亮部分。

说明:程序首先载入和显示一幅图像,然后定义一个Mat类型的变量来获取 getStructuringElement函数的返回值,这个函数发返回值指的是定性质和尺寸的结构元素。调用erode()函数进行图像腐蚀操作。

//进行腐蚀操作
	Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
	Mat dstImage;
	erode(src, dstImage, element);
	imshow("效果图", dstImage);

在这里插入图片描述
三、图像模糊:对图像进行均值滤波操作,模糊一幅图像。

//进行均值滤波操作
	Mat dstImage;
	blur(src, dstImage, Size(7, 7));
	imshow("均值滤波", dstImage);

四、canny边缘检测

说明:载入图像之后,将图像转化成灰度图,再用blur函数进行图像模糊以降噪,如何用canny函数进行边缘检测

#include<opencv2/opencv.hpp> 
#include<opencv2/highgui/highgui.hpp>//opencv highgui模块头文件
#include<opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
int main()
{
	//载入图片
	Mat src = imread("D:\\12.jpg");
	//显示图片
	imshow("原始图", src);
	Mat dstImage, edge, grayImage;//参数定义
	//创建与src同类型和大小的矩阵
	dstImage.create(src.size(), src.type());
	//将原始图转化为灰度图
	cvtColor(src, grayImage, COLOR_BGR2GRAY);
    imshow("灰度图", grayImage);
	//使用3x3内核来降噪
	blur(grayImage, edge, Size(3, 3));
	//运行Canny算子
	Canny(edge, edge, 3, 9, 3);
	//显示效果
	imshow("边缘检测效果图", edge);
	waitKey(0);
}

在这里插入图片描述
在这里插入图片描述
五、读取并播放视频

说明:通过对VideoCapture类的分享,可以发现利用它读入视频的方法一般有以下两种

(1)先实例化再初始化

VideoCapture capture;
capture.open("1.avi");
类似:int a; a=1;

(2)在实例化的同时进行初始化

VideoCapture capture("1.avi");
类似:int a=1;

当视频读入到VideoCapture类对象之后,紧接着可以用一个循环将每一帧显示出来

while(1)
{
    //定义Mat变量,存储每一帧的图像
    Mat frame;
    //读取当前帧
    capture>>frame;
    //显示当前帧
    imshow;
    //延时30ms
    waitKey(30);
}

程序源码:

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
	//读入视频
	VideoCapture capture("D:\\1.mp4");
	//循环显示每一帧
	while (1)
	{
		//定义Mat变量,存储每一帧的图像
		Mat frame;
		//读取当前帧
		capture >> frame;
		//显示当前帧
		imshow("读取视频", frame);
		//延时30ms
		waitKey(30);
	}
	return 0;
}

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我菜就爱学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值