0
点赞
收藏
分享

微信扫一扫

快速上手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);
}

快速上手OpenCV小程序_#include

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

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

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

快速上手OpenCV小程序_图像处理_02


三、图像模糊:对图像进行均值滤波操作,模糊一幅图像。

//进行均值滤波操作
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);
}

快速上手OpenCV小程序_opencv_03


快速上手OpenCV小程序_opencv_04


五、读取并播放视频

说明:通过对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;
}

快速上手OpenCV小程序_图像处理_05


举报

相关推荐

0 条评论