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