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