【OpenCV基础】读取|显示|保存图像;创建窗口;色彩空间转换;修改图像尺寸

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处


主要学习四个API函数
1.imread读取图像
2.namedWindow创建图像显示窗口
3.imshow显示图像
4.cvtColor-色彩空间转换函数
5.imwrite保存图像
6.resize修改图像尺寸

1.imread-读取图像

加载图像就是将图像进行读取,获取图像的信息,并存到一个Mat对象中,方便后续操作。
注意:读进来的是RGB顺序的图像。
函数原型

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

参数含义如下:

第一个参数表示输入图像所在的路径以及图像名
注意:OpenCV支持JPG、PNG、TIFF等常见格式图像文件加载

第二个参数,表示加载的图像是什么类型,支持常见的三个参数值:
1.IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变
2.IMREAD_GRAYSCALE ( 0)表示把原图作为灰度图像加载进来
3.IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来
注:一般情况下,我们都默认调用第一个参数,第二个参数不用填,默认加载原图

2.namedWindow-创建图像显示窗口

创建窗口的API为namedWindow,功能是创建一个OpenCV窗口,它是由OpenCV自动创建与释放,因此无需敲代码销毁它。
函数原型:

namedWindow(“Window Title”, WINDOW_AUTOSIZE)

参数含义如下:

第一个参数:表示窗口名称;
第二个参数:Mat对象,有四种类型:
1.WINDOW_AUTOSIZE:显示图像本身的尺寸,不可以改变窗口大小
2.WINDOW_NORMAL:可以手动拖动窗口,改变尺寸。
3.WINDOW_FULLSCREEN:全屏显示
4.WINDOW_FREERATIO:使窗口在没有比率约束的情况下可调整大小.
5.WINDOW_KEEPRATIO:使窗口可调整大小,但保留所显示图像的比例。

例如:

namedWindow("input", WINDOW_AUTOSIZE);
char input[]=" inputimage";
namedWindow(inpu, WINDOW_AUTOSIZE);
#define INPUT_TITLE "input image"          // 宏定义,原始图片
namedWindow(INPUT_TITLE, CV_WINDOW_AUTOSIZE);

或是使用数字代替类型

namedWindow("input", 1);

3.imshow-显示图像

函数原型

imshow ( const String & winname, InputArray mat )
第一个参数:窗口名称。
第二个参数:要显示的图像

4.cvtColor-色彩空间转换函数

COLOR_ BGR2GRAY = 6彩色到灰度
COLOR_ GRAY2BGR = 8灰度到彩色
COLOR_ BGR2HSV = 40 BGR到HSV
COLOR_ HSV2BGR = 54 HSV到BGR

5.imwrite-保存图像

保存图像,图像类型由扩展名决定。
第一个参数是图像保存路径
第二个参数是图像Mat对象

6.resize修改图像尺寸

代码演示

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;
   
int main() {
	Mat src, src_gray, src_HSV;
	//1.读取图像
	src = imread("D:/images/lena.jpg");//Mat表示矩阵,也就是图像的本质。

   //2.创建新的窗口
	namedWindow("input", WINDOW_AUTOSIZE);//input表示窗口名称;WINDOW_AUTOSIZE会自动根据图像大小,显示窗口大小,不能人为改变窗口大小

	//3.显示原像
	imshow("input", src);//根据窗口名称显示图像到指定的窗口上去,第一个参数是窗口名称,第二参数是Mat对象

	//4.色彩空间转换-转灰度,hsv空间图像**
	cvtColor(src, src_gray, COLOR_BGR2GRAY);
	cvtColor(src, src_HSV, COLOR_RGB2HSV);
	imshow("src_gray", src_gray);
	imshow("src-HSV", src_HSV);

   //5.保存图像
	imwrite("D:/灰度图像.tif", src_gray);//保存灰度图像在D盘中,名称为“灰度图像”,格式为tif

	waitKey(0);//waitKey()表示停顿时间,o表示一直阻塞,上面的图像就会一直显示。如果是1,表示显示1毫秒之后图像消失。
	destroyAllWindows();//关闭所有显示窗口,由于创建的窗口可以自动销毁,因此改行代码可写可不写
	return 0;//代表函数正常终止
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌小超

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

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

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

打赏作者

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

抵扣说明:

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

余额充值