最近在研究相机标定这个小课题,标定时需要将图片打包成XML YML TXT格式,根据自己的理解总算是写好了这段可运行的代码,不多说,贴出代码
/*this creates a yaml or xml list of files */
#include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include <string> #include <iostream> using std::string; using std::endl; using namespace cv; int main() { string outputname = "D:\\Documents\\Visual Studio 2013\\Projects\\插件机视觉系统_MFC\\Result_data\\imagelist.yml"; //图片列表保存路径,可自己设置 char imagename[20]; Mat m = imread(outputname); //check if the output is an image - prevent overwrites! if(!m.empty()) { std::cerr << "fail! Please specify an output file,don't want to overwrite you images!" << endl; return 1; } FileStorage fs(outputname,FileStorage::WRITE); //利用FileStorage类定义对象fs,以写入方式打开文件 fs << "images" << "["; // "[" 此中括号意思是:表示开始写入文本系列 for(int i = 1; i <= 26; i++) //有26张图片 { sprintf(imagename,"%.2d.jpg",i); //将图片名称写进imagename字符串中 fs << imagename; } fs << "]"; //关闭文本 return 0; }