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

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

《OpenCV图像处理》——2.6 数据持久化的相关文章

《OpenCV图像处理》——导读

前言 OpenCV,可以说是使用最广泛的计算机视觉库,它包括几百个易用的图像成像和视觉函数,既可用于学术研究,也可用于工业领域.随着摄像机越来越便宜和对影像学特征需求的增长,无论是对于台式机还是移动平台,OpenCV的应用范围都有了显著增长. 本书结合示例讲述OpenCV的主要图像处理算法.OpenCV方面的其他书籍试图说明其基础理论,或提供接近完整的大型应用程序示例,而本书则针对这样的读者而编写:他们想要尽量快速地得到一个易于理解的工作示例,并可能在此基础上开发一些附加功能. 本书以一个介绍性

《OpenCV图像处理》——2.8 小结

2.8 小结 本章涉及并建立了在计算机视觉中应用图像处理方法的基础.对于更深入的计算机视觉应用来说,图像处理通常是第一步,因此,本章包括:基本数据类型.像素级访问.常用的图像操作.算术运算.数据持久化和直方图.您还可以参考由Packt出版社出版的<OpenCV Essentials>中第3章对这一广泛主题的基本方面进行的更深入探讨,例如,图像增强.通过滤波进行图像修复和几何校正等.下一章将介绍图像处理方法更深入的内容,通过平滑.锐化.图像分辨率分析.形态学和几何变换.修复和去噪等方法,对图像进

浅谈数据持久化

PS:一些小小的见解,不做之处,还望朋友们多多指导. 数据持久化值得是数据存储方式,在.net中可以利用session.cookie对象保 存用户登录状态,application对象配置应用程序. 这篇文章主要讲解数据的本地存储方案. DataSet类操作讲解 以xml文件保存数据 基于SQLite轻量级数据库保存数 据 基于access数据库保存数据 基于SQLServer数据库保存 1.在讲解数据保存方案前简述一下.net中dataset类,dataset类基本上是内存 中的数据库,其中包含

iOS学习之数据持久化详解

前言 持久存储是一种非易失性存储,在重启设备时也不会丢失数据.Cocoa框架提供了几种数据持久化机制: 1)属性列表: 2)对象归档: 3)iOS的嵌入式关系数据库SQLite3: 4)Core Data. 在iOS开发中,持久化数据的方法也并不限于属性列表.对象归档.SQLite3和Core Data.它们只是四种最常用且简单的方法.其实也可以使用传统C语言I/O调用(比如,fopen())读写数据,也可以使用Cocoa的底层文件管理工具.只不过这两种方法都需要写很多代码,并且没有必要这么做.

iOS数据持久化之一——plist文件

iOS数据持久化之一--plist文件         iOS开发中,我们时常会将一些简单的数据进行持久化的存储,方便我们保存程序的一些配置和用户的一些数据,plist文件就是我们保存这些数据的最佳选择. 一.何为plist         plist是一种文件格式,其内容规则是xml文件,后缀为.plist,因此,我们更习惯于成它问plist文件,在iOS开发中,这种文件常用来保存一些简单的配置数据,例如项目中的info.plist. 通过plist文件编辑器,我们可以很方便的查看和编辑层次清

Docker数据持久化与容器迁移(三)

上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或者数据容器卷来解决问题,另外还可以通过commit提交一个新的镜像来保存产生的数据.那么,来一一看下各自的使用方法. 一.数据卷 数据卷特性: 可以绕过UFS文件系统,为一个或多个容器提供访问. 完全独立于容器的生存周期,因此不会在删除容器时删除其挂在的数据卷. 数据卷特点: 数据卷在容器启动初始化

iOS中 数据持久化 UI高级_17

数据持久化的本质就是把数据由内写到本地(硬盘中),在iOS指将数据写到沙盒文件夹下: 沙盒机制:指的就是采用沙盒文件夹的形式管理应用程序的本地文件,而且沙盒文件夹的名字是随机分配的,采用十六进制方法命名: =======================关于沙盒目录========================== 沙盒内部构造: 测试沙盒: 属性: @interface ViewController () @property (retain, nonatomic) IBOutlet UITex

Kafka实战-数据持久化

1.概述 经过前面Kafka实战系列的学习,我们通过学习<Kafka实战-入门>了解Kafka的应用场景和基本原理,<Kafka实战-Kafka Cluster>一文给大家分享了Kafka集群的搭建部署,让大家掌握了集群的搭建步骤,<Kafka实战-实时日志统计流程>一文给大家讲解一个项目(或者说是系统)的整体流程,<Kafka实战-Flume到Kafka>一文给大家介绍了Kafka的数据生产过程,<Kafka实战-Kafka到Storm>一文给

java sqlite quartz-java如何使用sqlite数据库实现quartz数据持久化

问题描述 java如何使用sqlite数据库实现quartz数据持久化 如题.java如何使用sqlite数据库实现quartz数据持久化. 解决方案 http://www.linuxidc.com/Linux/2014-08/105947.htm