观看记录
  • 我的观影记录
登录
测试首页OpenCV:xml文件的读取与写入

OpenCV:xml文件的读取与写入

绪:

xml是Extensible Markup Language可扩展标识表记标帜说话的简写;

本文本家儿要介绍:

xml文件布局;

xml文件的读和写;

xml文件中-vector数据布局;

xml文件中-map数据布局;

遍历xml文件节点;

xml中自界说布局存储;

工具/原料

  • OpenCV 2410

方式/步骤

  1. 1

    xml文件布局:

    ①xml文件的第一行为xml文件申明,一般申明了xml的版本和编码信息;

    如:

    <? xmlversion="1.0" encoding="UTF-8"?>

    ②xml文件的第二行为xml的肇端节点,也是根节点;

    Opencv的xml文件默认的根节点为:

    <opencv_storage>……</opencv_storage>

    ③每个xml文件有且只有一个根节点,其他节点都包含在这个根节点之内,每个节点又可以包含若干个子节点。

  2. 2

    xml文件的读和写:

    ①xml文件的写数据,

    首先用可写的体例打开一个test.xml文件,

    然后写入一个Mat矩阵,

    最后封闭。

    ②xml文件的读数据,

    首先用可读体例打开一个test.xml文件,

    然后读出“src1”节点里面的中心,

    最后封闭。

    ③读和写打开xml文件也可以和下面那样:

    FileStorage fswrite; 

    fswrite.open("stereo.xml",FileStorage::WRITE); 

    FileStorage fsread; 

    fsread.open("stereo.xml",FileStorage::READ); 

    【注】:FileStorage::WRITE每次城市新建一个文件,若是文件已经存在就会被笼盖失落,若是不想被笼盖,而是继续在已有的文件根本上添加内容,那么可以以FileStorage::APPEND的体例来打开!

  3. 3

    xml文件中-vector数据布局:

    vector数据,xml文件节点,不包含子节点;

    在输入vector数据的起头和结从头至尾要别离输入“[”,“]”;

    【注】:在输入vector数据前要先输入标签名称;

  4. 4

    xml文件中-map数据布局

    map数据,xml文件节点,包含子节点;

    在输入map数据的起头和结从头至尾要别离写入“{”,“}”,

    【注】:在输入 map数据前要先输入标签名称;

    示例:

    手动建立一个xml父节点(map),包含三个子节点(vector)。

    #include <opencv2\opencv.hpp>

    #include <opencv2\highgui\highgui.hpp>

    #include <opencv2\features2d\features2d.hpp>

    #include <opencv2\core\core.hpp>

    using namespace std; 

    using namespace cv; 

    int main()

    {

        //========成立节点(写数据)========= 

        FileStorage fswrite; 

        fswrite.open("calib.xml",FileStorage::WRITE); 

        fswrite<<"src"<<"{"<<"src1"<<"["<<1<<2<<3<<"]"//子节点 

               <<"src2"<<"["<<1<<2<<3<<"]" 

               <<"src3"<<"["<<1<<2<<3<<"]"<<"}"; 

        fswrite.release(); 

        cout<<"Write Finished"<<endl; 

        getchar();

        return 0;

    }

  5. 5

    遍历xml文件节点:

    在包含多个节点的xml文件中,

    遍历的时辰,

    首先先获取了文件的根节点-FileNode;

    然后界说一个迭代器-FileNodeIterator,

    从根节点的第一个节点起头遍历,直到最后一个节点竣事。

    成果阐发:

    下面是stereo.xml的内容,

    此中<?xml version="1.0"?>为文件信息,申明了xml的版本为1.0;<opencv_storage>...</opencv_storage>为根节点,

    <src1 type_id="opencv-matrix">...</src1>为第一级节点(根节点的子节点),<rows>3</rows>为第二级节点,它是<src1 type_id="opencv-matrix">...</src1>的子节点。

  6. 6

    xml中自界说布局存储:

    OpenCV的xml可以实现int,float,double,string,mat等数据类型的存储和读取;可是往往我们会自界说类型的数据,那么如何实现自界说数据的存取?

    步调如下:

    ①自界说数据布局:

    ②界说完数据布局后需要重载两个函数;

    ③对自界说的数据进行存储和读取;

     class faceInfo

    public: 

        void write(FileStorage& fs) const 

        { 

            fs<<"{"<<"matrix"<<matrix<<"label"<<label<<"}"; 

        }

        void read(const FileNode& node) 

        { 

            node["matrix"]>>matrix; 

            node["label"]>>label; 

        } 

    public: 

        Mat matrix; 

        string label; 

    };

  7. 7

    void write(FileStorage& fs, const string&, const faceInfo& x) 

        x.write(fs);  

    }

    void read(const FileNode& node, faceInfo& x, const faceInfo& default_value = faceInfo()) 

        if(node.empty()) 

            x = default_value; 

        else 

            x.read(node); 

    main

    函数内本家儿法式如图所示:

注重事项

  • xml文件的第一行为xml文件申明,一般申明了xml的版本和编码信息;
  • xml文件的第二行为xml的肇端节点,也是根节点;
  • 每个xml文件有且只有一个根节点,其他节点都包含在这个根节点之内,每个节点又可以包含若干个子节点。

“OpenCV:xml文件的读取与写入”关联的文章

  • 如何关闭皮皮搞笑精彩内容消息通知

    皮皮搞笑是一款手机搞笑社区App,让用户笑到没心没肺,又忍不住感动流泪的温暖家园,那么如何关闭皮皮搞笑精彩内容消息通知以满足不同用户的需求呢?

    1小时前0阅读

    如何关闭皮皮搞笑精彩内容消息通知
  • win7系统找不到宽带连接怎么办

    现如今很多用户都喜欢使用win7系统,而在使用win7系统的过程中做的最多的就是上网了。Win7系统上网离不开宽带连接,如果win7宽带连接找不到了,应该怎么办呢?下面就让小编为大家带来win7系统找不到宽带连接解决方法

    1小时前0阅读

    win7系统找不到宽带连接怎么办
  • 新版QQ音乐怎么关闭底部的直播导航

    新版QQ音乐怎么关闭底部的直播导航?下面请大家随小编一起来看看操作的方法吧。

    1小时前0阅读

    新版QQ音乐怎么关闭底部的直播导航
  • 怎样查询高速实时路况?

    要出行怎么查询高速实时路况?我们用地图就可以了,在地图上就可以看到实际的路况的,下面详细来看下。

    1小时前0阅读

  • 六芒星手势密码教程
  • 教师讲课过程评价标准

    教师是太阳底下最光辉的职业,但是成为教师之路也是要经历重重考验的,下面给大家说说教师讲课过程评价标准

    1小时前0阅读

  • 酚醛铝箔夹芯板

    酚醛铝箔夹芯板是由酚醛泡沫与两层亚光铝箔经过特殊工艺复合而成。外膜材料为经过高温固化的高分子膜,可有效的防止紫外线及气体腐蚀,并与铝箔结合牢固,又能与酚醛泡沫形成聚合物,从而保证象圆酚醛铝箔夹芯板的质量稳定。

    1小时前0阅读

  • Xperia XZ2 Premium配置如何

    Xperia XZ2 Premium是索尼在4月16日悄悄发布的新机,而且没进行预热,下面来简单了解一下配置。

    1小时前0阅读

  • PLSQL破解,无需注册码和破解工具

    PL/SQL Developer过期了,又没有注册码,又不想花钱买,而且事情又非常急,这时候怎么办?不要着急,请随小编一起解决这种情况吧。

    1小时前0阅读

  • Win11按capslock切换不了大小写怎么解决

    有朋友不知道在哪里设置,下面小编就给大家分享详细的设置方法,有需要帮助的朋友可以参考下这篇经验,希望能对大家有所帮助。

    2小时前0阅读

    Win11按capslock切换不了大小写怎么解决
切换深色外观
留言
视频编辑修改
回到顶部
首页
手机数码
医疗健康
金融管理
社交情感
无名