最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

OPENCV FILESTORAGE类读写XML或YML文件

来源:动视网 责编:小OO 时间:2025-10-05 18:51:23
文档

OPENCV FILESTORAGE类读写XML或YML文件

OpenCVFileStorage类读写XML/YML文件在OpenCV程序中,需要保存中间结果的时候常常会使用.xml/.yml文件,opencv2.0之前都是使用C风格的代码,当时读写XML文件分别使用函数cvLoad()和cvSave()。在2.0以后的OpenCV转为支持C++,这一举措大大减少了代码量以及编程时需要考虑的细节。新版本的OpenCV的C++接口中,imwrite()和imread()只能保存整数数据,且需要以图像格式。当需要保存浮点数据或者XML/YML文件时,之前的C
推荐度:
导读OpenCVFileStorage类读写XML/YML文件在OpenCV程序中,需要保存中间结果的时候常常会使用.xml/.yml文件,opencv2.0之前都是使用C风格的代码,当时读写XML文件分别使用函数cvLoad()和cvSave()。在2.0以后的OpenCV转为支持C++,这一举措大大减少了代码量以及编程时需要考虑的细节。新版本的OpenCV的C++接口中,imwrite()和imread()只能保存整数数据,且需要以图像格式。当需要保存浮点数据或者XML/YML文件时,之前的C
OpenCV FileStorage类读写XML/YML文件

在OpenCV程序中,需要保存中间结果的时候常常会使用.xml / .yml文件,opencv2.0之前都是使用C风格的代码,当时读写XML文件分别使用函数cvLoad()和cvSave()。在2.0以后的OpenCV转为支持C++,这一举措大大减少了代码量以及编程时需要考虑的细节。

新版本的OpenCV的C++接口中,imwrite()和imread()只能保存整数数据,且需要以图像格式。当需要保存浮点数据或者XML/YML文件时,之前的C语言接口cvSave()函数已经在C++接口中被删除,代替它的是FileStorage类。这个类非常的方便,封装了很多数据结构的细节,编程的时候可以根据统一的接口对数据结构进行保存。

1. FileStorage类写XML/YML文件

?   新建一个FileStorage对象,以FileStorage::WRITE的方式打开一个文件。          ?   使用 << 操作对该文件进行操作。

?   释放该对象,对文件进行关闭。

例子如下:

FileStorage fs("test.yml", FileStorage::WRITE);

fs << "frameCount" << 5;     time_t rawtime; time(&rawtime);

fs << "calibrationDate" << asctime(localtime(&rawtime));

Mat cameraMatrix = (Mat_<double>(3,3) << 1000, 0, 320, 0, 1000, 240, 0, 0,

1); //又一种Mat初始化方式

Mat distCoeffs = (Mat_<double>(5,1) << 0.1, 0.01, -0.001, 0, 0);     fs << "cameraMatrix" << cameraMatrix << "distCoeffs" << distCoeffs;

//features为一个大小为3的向量,其中每个元素由随机数x,y和大小为8的uchar数组组成     fs << "features" << "[";

for( int i = 0; i < 3; i++ )     {

int x = rand() % 0;

int y = rand() % 480;

uchar lbp = rand() % 256;

fs << "{:" << "x" << x << "y" << y << "lbp" << "[:";

for( int j = 0; j < 8; j++ )

文档

OPENCV FILESTORAGE类读写XML或YML文件

OpenCVFileStorage类读写XML/YML文件在OpenCV程序中,需要保存中间结果的时候常常会使用.xml/.yml文件,opencv2.0之前都是使用C风格的代码,当时读写XML文件分别使用函数cvLoad()和cvSave()。在2.0以后的OpenCV转为支持C++,这一举措大大减少了代码量以及编程时需要考虑的细节。新版本的OpenCV的C++接口中,imwrite()和imread()只能保存整数数据,且需要以图像格式。当需要保存浮点数据或者XML/YML文件时,之前的C
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top