【OpenCV】OpenCv读取xml/yml相关问题

前端之家收集整理的这篇文章主要介绍了【OpenCV】OpenCv读取xml/yml相关问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转自stackoverflow

As an example,if you have aymlfile like this one,that I'll calldemo.yml

%YAML:1.0
    Variable1: !!opencv-matrix
       rows: 4
       cols: 5
       dt: f
       data: [ -1.60522782e-03,-5.93489595e-03,2.92204670e-03,1.14785777e-02,-1.57432575e-02,-2.17529312e-02,4.05947529e-02,6.56594411e-02,1.24527821e-02,3.19751091e-02,5.41692637e-02,4.04683389e-02,2.59191263e-03,1.15112308e-03,1.11024221e-02,4.03668173e-03,-3.19138430e-02,-9.40114353e-03,4.93452176e-02,5.73473945e-02 ]
    Variable2: !!opencv-matrix
       rows: 7
       cols: 2
       dt: f
       data: [ -2.17529312e-02,5.73473945e-02,1.15112308e-03 ]

Then,you can use OpenCV FileStorage class to load the variables contained on this demo.yml file as:

#include <iostream>
#include <string>

#include <cv.h>
#include <highgui.h>

using namespace cv;
using namespace std;

int main (int argc,char * const argv[])
{   
    Mat var1;
    Mat var2;

    string demoFile  = "demo.yml";

    FileStorage fsDemo( demoFile,FileStorage::READ);
    fsDemo["Variable1"] >> var1;
    fsDemo["Variable2"] >> var2;

    cout << "Print the contents of var1:" << endl;
    cout << var1 << endl << endl;

    cout << "Print the contents of var2:" << endl;
    cout << var2 << endl;

    fsDemo.release();
    return 0;
}

猜你在找的XML相关文章