IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 快速上手OpenCV小程序 -> 正文阅读

[人工智能]快速上手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;
}

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:13:42  更:2022-06-01 15:14:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:35:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码