有时候,我们需要用配置文件存储一些图像或者视频的信息。

先来一个简单的例子:

#include <cv.h>
#include <highgui.h> int main(int argc,char **argv)
{
CvFileStorage *fs = cvOpenFileStorage("cfg.xml", 0, CV_STORAGE_WRITE);
cvWriteInt(fs, "frame_count", 10);
cvReleaseFileStorage(&fs); }

结果是生成一个cfg.xml,下面是它的内容:

<?xml version="1.0"?>
<opencv_storage>
<frame_count>10</frame_count>
</opencv_storage>

这里不仅仅可以写一些简单数据,还可以写好几层的数据:

#include <cv.h>
#include <highgui.h> int main(int argc,char **argv)
{
CvFileStorage *fs = cvOpenFileStorage("cfg.xml", 0, CV_STORAGE_WRITE);
cvWriteInt(fs, "frame_count", 10); cvStartWriteStruct(fs, "frame_size", CV_NODE_MAP);
cvStartWriteStruct(fs, "frame_detail", CV_NODE_MAP);
cvWriteInt(fs, "K", 33);
cvWriteInt(fs, "FF", 87);
cvEndWriteStruct(fs);
cvWriteInt(fs, "x", 320);
cvWriteInt(fs, "Y", 240);
cvEndWriteStruct(fs); cvReleaseFileStorage(&fs); }

效果是:

<?xml version="1.0"?>
<opencv_storage>
<frame_count>10</frame_count>
<frame_size>
<frame_detail>
<K>33</K>
<FF>87</FF></frame_detail>
<x>320</x>
<Y>240</Y></frame_size>
</opencv_storage>

这里要注意了,这里使用了CV_NODE_MAP,这里就要加key了,不然会报错。如果使用了CV_NODE_SEQ的时候加key也会报错。

这里的key是指上面的"x","y"这些值。不加key的时候是0.

所以,SEQ适合顺序结构,MAP适合树状结构。

他还可以写矩阵,鉴于目前还没有学到,暂时略过。

Opencv step by step - 配置文件的更多相关文章

  1. 持续交付工具ThoughtWorks Go部署step by step

    持续交付工具ThoughtWorks Go部署step by step http://blogs.360.cn/360cloud/2014/05/13/%E6%8C%81%E7%BB%AD%E4%BA ...

  2. Linux 学习 step by step (2)

      Linux 学习 step by step (2) Linux,想要我说爱你真的不容易了,尽管,你是ubutun,尽管,你有蛮界面.但是,操作你,还是没有操作windows那么的如鱼得水了.为了更 ...

  3. Devops step by step

    接着上次分享的devops历程[Followme Devops实践之路], 大家希望能够出一个step by step手册, 那今天我就来和手把手来一起搭建这么一套环境, 演示整个过程! 实验环境需要 ...

  4. 精通initramfs构建step by step

    (一)hello world  一.initramfs是什么  在2.6版本的linux内核中,都包含一个压缩过的cpio格式 的打包文件.当内核启动时,会从这个打包文件中导出文件到内核的rootfs ...

  5. [py]python写一个通讯录step by step V3.0

    python写一个通讯录step by step V3.0 参考: http://blog.51cto.com/lovelace/1631831 更新功能: 数据库进行数据存入和读取操作 字典配合函数 ...

  6. Linkerd 2.10(Step by Step)—2. 自动化的金丝雀发布

    通过结合 Linkerd 和 Flagger 来根据服务指标自动金丝雀(canary)发布,从而降低部署风险. Linkerd 2.10 中文手册持续修正更新中: https://linkerd.ha ...

  7. Linkerd 2.10(Step by Step)—控制平面调试端点

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  8. Linkerd 2.10(Step by Step)—配置重试

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  9. Linkerd 2.10(Step by Step)—3. 自动轮换控制平面 TLS &Webhook TLS 凭证

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  10. Step by step Dynamics CRM 2011升级到Dynamics CRM 2013

    原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...

随机推荐

  1. java控制台输入

    一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的 ...

  2. Sping mvc 环境下使用kaptcha 生成验证码

    一.kaptcha 的简介 kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kap ...

  3. Eclipse,myeclipse开发中常用技巧总结

    一.myeclipse自带包和自己部署的包冲突解决问题方案 原来的依赖设置: 修改后的配置: 二.取消Myeclipse的自动文件验证来增加myeclipse速度 1.Windows –> Pe ...

  4. Linux常用压缩和解压命令

    .tar 解包 tar xvf filename.tar.tar 打包 tar cvf filename.tar dirname.gz 解压1 gunzip filename.gz.gz 解压2 gz ...

  5. (转载)web测试方法总结

    web测试方法总结 一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号.禁止直 ...

  6. Oracle Stored Procedure demo

    1.how to find invalid status stored procedure and recompile them? SELECT OBJECT_NAME , status FROM u ...

  7. 我的NopCommerce之旅(6): 应用启动

    一.基础介绍 Global.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选文件,该文件包含响应 ASP.NET 或 HTTP 模块所引发的应用程序级别和会话级别事件的代码. Appl ...

  8. 【温故而知新-Javascript】图片效果(图像震动效果、闪烁效果、自动切换图像)

    1.当鼠标指针经过图像时图像震动效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  9. 最小生成树 kruskal hdu 5723 Abandoned country

    题目链接:hdu 5723 Abandoned country 题目大意:N个点,M条边:先构成一棵最小生成树,然后这个最小生成树上求任意两点之间的路径长度和,并求期望 /************** ...

  10. JAVASE笔记回顾

    第一部分,JAVA基础和面向对象 part01 入门与开发环境搭建 1: 计算机基础知识(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:windows,linux,mac应用软件:QQ, ...