您的位置:首页 > 运维架构

Opencv的XML文件的读取操作

2015-08-28 22:57 337 查看
#include<time.h>
#include<opencv2/opencv.hpp>
#include<vector>

using namespace std;
using namespace cv;

int main()
{
//改变背景的颜色
system("color 6F");

//定义该操作的类,定义为读取的模式
FileStorage fs2("test.doc", FileStorage::READ);

//从文件中读取
//将名字为"frameCount"的文件  存到变量frameCount中
int frameCount = static_cast<int>(fs2["frameCount"]);

//将名字为"calibrationData"的文件  存到变量data中
string data;
fs2["calibrationData"] >> data;

//将名字为"cameraMatrix"的文件  存到变量cameraMatrix中
Mat cameraMatrix;
fs2["cameraMatrix"] >> cameraMatrix;
//将名字为"distCoeffs"的文件  存到变量cameraMatrix中
Mat distCoeffs;
fs2["distCoeffs"] >> distCoeffs;

//下面读取向量
//先得到向量的节点 features,然后遍历节点
FileNode features = fs2["features"];
//用节点遍历元素,并且显示
FileNodeIterator it = features.begin();
FileNodeIterator itend = features.end();
vector<uchar> lbpval;
int arrayValue = 0;
for (; it != itend; it++, arrayValue++)
{
cout << "features #" << arrayValue << ": ";
cout << "x = " << (int)(*it)["x"] << ", y = " << (int)(*it)["y"] << ", lbp: (";

//将名字为 "lbp" 的文件 存到变量lbpval中
(*it)["lbp"] >> lbpval;

//显示向量中的数据
for (int i = 0; i < (int)lbpval.size(); i++)
{
cout << " " << (int)lbpval[i];
}
cout << ")" << endl;
}

//输出文件中的数据
cout << "帧数" << frameCount << endl;
cout << "现在的日期是:" << data << endl;
cout << "输出第一个矩阵:" << cameraMatrix << endl;
cout << "输出第二个矩阵:" << distCoeffs << endl;

fs2.release();

return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: