OpenCV可移植图形工具HighGUI实现图像和视频操作

本文介绍了OpenCV的HighGUI模块,包括图像的载入与保存、视频处理以及数据存储。讲解了cv::imread(), cv::imwrite()用于图像操作,cv::VideoCapture和cv::VideoWriter处理视频流,以及cv::FileStorage进行数据序列化和反序列化。" 113676358,10295856,Python编程循环与控制结构深度解析,"['Python编程', '循环结构', '控制流', '数学库应用', '爬虫实战']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV把用于操作系统、文件系统以及摄像机等硬件设备交换的函数纳入了HighGUI(High-level Graphical User Interface)模块中。有了HighGUI模块,我们可以方便地打开窗口、显示图像、读出或写入图像相关的文件、鼠标事件和键盘事件。下面将对三部分分别进行介绍。

HighGUI三部分的作用
部分 作用
硬件部分 最主要是对摄像机的操作
文件系统部分 主要工作是完成图片的载入和保存
窗口系统GUI 创建窗口并将图片放入窗口显示,同时添加响应鼠标和键盘事件功能

图像文件的处理

图像的载入与保存

使用cv::imread()读取图片

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

作用:载入图像,若失败不会抛出异常,返回的是空的cv::Mat(可以用cv::Mat::empty()==true来判断)。

flags的取值
标志 含义 默认值
cv::IMREAD_COLOR 读取三通道图像,即使输入是灰度图像,也会有三通道,只是每个通道拥有相同的数据
cv::IMREAD_GRAYSCALE 读取单通道图像
cv::IMREAD_ANYCOLOR 通道数由文件实际通道数(不超过3)
cv::IMREAD_ANYDEPTH 允许加载超过8bit深度
cv::IMREAD_UNCHANGED 相当于cv::IMREAD_ANYCOLOR和cv::IMREAD_ANYDEPTH组合使用,可保留alpha通道。

使用cv::imwrite()保存图像

bool cv::imwrite(const string& filename, InputArray image, const vector<int>& params=vector<int>())

作用:保存图像,成功返回true,否则返回false。

常用扩展名
扩展名 格式 大小 通道
.jpg或.jpeg baseline JPEG 8位 单通道或三通道
.jp2 JPEG2000 8位或16位 单通道或三通道
.tif或.tiff TIFF 8位或16位 单通道、三通道或四通道
.png PNG 8位或16位 单通道、三通道或四通道
.bmp BMP 8位 单通道、三通道或四通道
.ppm或.pgm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值