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

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

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 NetPBM 8位 单通道
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值