OpenCV学习之路(五) 图像的载入、显示和输出

本文详细介绍了OpenCV中图像的载入与显示,包括imread()和imshow()函数的使用,以及如何输出图像到文件。此外,还探讨了滑动条的创建和使用,以及鼠标操作的实现,为OpenCV学习者提供了实用的操作指南。
摘要由CSDN通过智能技术生成

目录

 

图像的载入与显示

输出图像到文件

综合实例代码

滑动条的创建和使用

鼠标操作


图像的载入与显示

imread() 函数和 imshow() 函数完成了最简单的图像载入和显示。

1. imread() 函数。原型如下:

Mat imread(const string& filename, int flags = 1);

(1)第一个参数,const string& 类型的 filename,对应需要载入的图片路径名。

(2)第二个参数,int 类型的 flags,为载入标识,指定一个加载图像的颜色类型。默认值为1,代表彩色图像。有如下枚举值:

CV_LOAD_IMAGE_UNCHANGED———等价取值为-1,新版本的OpenCV中将其废置,忽略。

CV_LOAD_IMAGE_GRAYSCALE———等价取值为0,始终将图像转换成灰度再返回。

CV_LOAD_IMAGE_COLOR——等价取值为1,始终将图像转到彩色再返回。

CV_LOAD_IMAGE_ANYDEPTH——等价取值为2,若载入图像的深度为16或32则返回对应深度的图像,否则将转为8位图像再返回。

输入有冲突的标志,将使用较小的数字值。比如CV_LOAD_IMAGE_COLOR|CV_LOAD_IMAGE_ANYCOLOR将载入三通道图像。如果想载入最真是无损的原图像,可以选择CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR。

因为 flags 是 int 类型的变量,若我们不适用固定的枚举值,可以做如下判定:

flags > 0 返回一个 3 通道的彩色图像(解码后的图像会以BGR的通道顺序进行存储,即蓝、绿、红);

flags = 0 返回灰度图像;

flags < 0 返回包含 Alpha 通道的加载图像(默认情况下不包含 Alpha 通道)。

imread("cat.jpg", 2 | 4); //载入无损的源图像

imread("cat.jpg", 0); //载入灰度图

imread("cat.jpg", 199); //载入 3 通道的彩色图像

 

2. imshow() 函数。原型如下:

void imshow(const string& winname, InputArray mat);

(1)第一个参数,const string& 类型的 winname,为需要显示的窗口标识名称。

(2)第二个参数,InputArray 类型的 mat,为需要显示的图像。

imshow() 函数用于在指定的窗口中显示图像。若窗口是用 CV_WINDOW_AUTOSIZE(默认值)标志创建的,那么将显示图像原始大小。否则,将图像进行缩放以适应窗口。imshow() 函数缩放图像,取决于图像的深度;

如果载入的图像是 8 位无符号类型,则显示图像本来的样子。

如果图像是 16 位无符号数类型或 32 位整型,则用像素值除以 256,值的范围从 [0,256*256] 映射到 [0,255]。

如果图像是 32 位浮点型,像素值乘以 255。值的范围从 [0,1] 映射到 [1,255]。

3. namedWindow() 函数。原型如下:

void namedWindow(const string& winname, int flags = WINDOW_AUTOSIZE);

(1)第一个参数,const s

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值