OpenCV4机器学习(二):图像的读取、显示与存储

网友投稿 894 2022-05-29

前言:

本专栏主要结合OpenCV4(C++版本),来实现一些基本的图像处理操作、经典的机器学习算法(比如K-Means、KNN、SVM、决策树、贝叶斯分类器等),以及常用的深度学习算法。

文章目录

一、OpenCV4头文件介绍

二、读取图像

二、显示图像

三、保存图像

四、实战小结

环境配置与搭建:

OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置

一、OpenCV4头文件介绍

想要使用OpenCV的类与函数,需要引用相关头文件,头文件中定义了所需的类与函数。

在OpenCV3.0版本之后,只须引用一个头文件即可使用OpenCV里所有的函数与功能。opencv.hpp头文件包含了OpenCV中所有模块的头文件。

#include "opencv.hpp"

1

如下图所示,是OpenCV4中主要的头文件:

下面对里面的一些重要的头文件进行解释说明:

二、读取图像

imread()用来读取图片,其定义如下:

Mat cv::imread(const String & filename, int flags = IMREAD_COLOR)

1

函数参数:

filename:图像文件名

flags:读取时使用的色彩模式标志位,从cv::imreadModels中取值,1为原图彩色模式,0为灰度模式。

在读取图像后,可以通过cv::Mat类的empty方法判断是否正确读取了图像,如果读取失败,则退出程序:

Mat img = imread("test.jpg", 1) if(img.empty()) return -1;

1

2

读取图像后,也可以通过读取二维矩阵的宽和高,来获取图像的宽和高:

int width = img.cols; int height = img.rows;

1

2

二、显示图像

首先新建图像显示窗口(不是必须的):

namedWindow("src", WINDOW_AUTOSIZE);

1

调用imshow()函数显示图像:

imread("src", img);

1

为了方便显示窗口停留方便查看,可以等待按键响应后再退出:

waitKey(0);

1

该函数默认参数值为0,当参数<=0时,表示永久等待直至按下键盘;当参数>0时,表示等待的ms数。

三、保存图像

imwrite 函数实现把图像存储为指定格式的文件的功能。实现如下:

imwrite("save.jpg", img);

1

imwrite 函数的定义如下:

bool imwrite(const String & filename, InputArray img, const vector & params=vector())

1

参数解释:

filename:要保存的文件名,包含文件拓展名

img:待存储的图像

params:与存储格式相关的参数,比如压缩比等。

四、实战小结

读取、显示和保存图像的整体代码如下:

#include #include using namespace std; using namespace cv; int main() { Mat img = imread("D:\VSProject\OpenCV4\chap01\1.jpg", 1); imshow("show", img); imwrite("save.jpg", img); waitKey(0); return 0; }

1

2

3

4

5

6

7

OpenCV4机器学习(二):图像的读取、显示与存储

8

9

10

11

12

13

14

显示结果如下:

本专栏所有完整的代码将在我的GitHub仓库上更新,欢迎大家前往学习:

https://github.com/Keyird/OpenCV4-Machine-Learning

进入GitHub仓库,点击 star (红色箭头所示),第一时间获取干货:

最好的关系是互相成就,各位的「三连」就是【AI 菌】创作的最大动力,我们下期见!

OpenCV 机器学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MAT文件打开方法汇总及其他操作
下一篇:使用ModelArts实现花卉图像分类【玩转华为云】
相关文章