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; }