《OpenCV图像处理》——2.6 数据持久化

简介:

本节书摘来自华章计算机《OpenCV图像处理》一书中的第2章,第2.6节,作者:[西]葛罗瑞亚·布埃诺·加西亚(Gloria Bueno García)著,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.6 数据持久化

在OpenCV中,除了包括读取、写入图像和视频的特定函数之外,还有一种更加通用的方式用来保存/加载数据。此方法称之为数据持久化(data persistence):程序中对象和变量的值可以被记录(序列化)到磁盘上。这对于保存结果和加载配置数据是非常有用的。其主类是aptly,命名为FileStorage,表示磁盘上的一个文件。实际上,数据被存储为XML格式或YAML格式。
这些是写入数据时涉及的步骤:
(1)调用构造函数FileStorage,使用FileStorage::WRITE值传递一个文件名称和一个标志,数据格式则是由文件扩展名(即.xml、.yml或.yaml)定义的;
(2)使用运算符<<将数据写入文件,数据通常被写为字符串值对;
(3)使用release方法关闭文件。
读取数据时需要如下这些步骤:
(1)调用构造函数FileStorage,使用FileStorage::READ值传递一个文件名和一个标志;
(2)使用运算符[]或>>从文件中读取数据;
(3)使用release方法关闭文件。
下面的示例使用数据持久化保存和加载滑动条的值。

screenshot
screenshot

当OpenCV使用Qt支持编译时,使用函数saveWindowParameters()可以保存窗口属性,包括滑动条的值。
当使用滑动条来控制一个整数值时,只是被加入到原始图像,使其变得更亮。当程序启动时,这个值被读入(初次时,该值为0),并在程序正常退出时进行保存。注意,上面的示例中显示了有两种等价的方法读取tb1_value变量的值。文件conf?ig.xml的内容是:
screenshot

相关文章
|
4月前
|
openCL 开发工具 C语言
OpenCV 图像处理学习手册:6~7
OpenCV 图像处理学习手册:6~7
83 0
|
4月前
|
存储 编解码 算法
OpenCV 图像处理学习手册:1~5
OpenCV 图像处理学习手册:1~5
33 0
|
3月前
|
人工智能 Linux API
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
47 0
|
5月前
|
算法 API 计算机视觉
OpenCV(图像处理)-基于Python-形态学处理-开运算、闭运算、顶帽、黑帽运算
1. 形态学 OpenCV形态学是一种基于OpenCV库的数字图像处理技术,主要用于处理图像的形状、结构和空间关系。它包括一系列图像处理工具和算法,包括膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽等。
60 0
|
7天前
|
算法 安全 机器人
最新版opencv4.9安装介绍,基本图像处理详解
最新版opencv4.9安装介绍,基本图像处理详解
|
19天前
|
机器学习/深度学习 存储 算法
OpenCV与NumPy:图像处理中的黄金组合
【4月更文挑战第17天】OpenCV和NumPy是Python图像处理的两大利器,互补协作形成黄金组合。OpenCV专注计算机视觉,提供丰富算法,而NumPy擅长数值计算和数组操作。两者无缝对接,共同实现高效、灵活的图像处理任务。通过灰度化、二值化、边缘检测等案例,展示了它们的协同作用。未来,这一组合将在计算机视觉和机器学习领域发挥更大作用,解锁更多图像处理潜力。
|
20天前
|
机器学习/深度学习 算法 Linux
使用OpenCV在Python中进行图像处理
使用OpenCV在Python中进行图像处理
|
5月前
|
缓存 算法 计算机视觉
OpenCV图像处理-视频分割静态背景-MOG/MOG2/GMG
1.概念介绍 视频背景扣除原理:视频是一组连续的帧(一幅幅图组成),帧与帧之间关系密切(GOP/group of picture),在GOP中,背景几乎是不变的,变的永远是前景。
108 0
|
2月前
|
机器学习/深度学习 API vr&ar
Qt, OpenCV与OpenGL协同作战:图像处理与三维图形界面的完美结合
Qt, OpenCV与OpenGL协同作战:图像处理与三维图形界面的完美结合
128 4
|
3月前
|
编解码 算法 自动驾驶
探索OpenCV:图像处理的利器
探索OpenCV:图像处理的利器
30 0