VS C++通过路径遍历文件夹图片并生成xml文件并调用

记录一下(每次用到的时候还得去找...):

网上c++生成xml的方法有很多,这里简单介绍以下opencv自带的FileStorage函数使用方法,

1、生成xml文件:


#include 
#include

using namespace cv;
using namespace std;


void img_save_xml(String img_path, String xml_name) {
	FileStorage file_storage; //调用FileStorage 函数
	file_storage.open(xml_name, FileStorage::WRITE); //WRITE 是写入
	vectorsrc_test; //存放图片路径的容器
	glob(img_path, src_test, false);//将文件夹路径下的所有图片路径保存到src_test中
	if (src_test.size() == 0) {//判断文件夹里面是否有图片
		printf("error!!!\n");
		exit(1);
	}

	for (int i = 0; i < src_test.size(); i++) {//依照顺序读取问价下面的每张图片,并显示
		cout << src_test[i] << endl;
	}

	file_storage << "images" << "[";
	for (int i = 0; i < src_test.size(); i++) {//依照顺序读取问价下面的每张图片,并显示
		file_storage << src_test[i];
	}
	file_storage << "]";
	file_storage.release(); //释放

}

int main() {

	String img_path = "";//文件夹路径
	String xml_name = "";//xml文件保存名称
	img_save_xml(img_path, xml_name);
}

效果:

VS C++通过路径遍历文件夹图片并生成xml文件并调用_第1张图片

 虽然保存的路径有// 和 \ 但并不影响图片的读取,如果是强迫症那就自己修改一下(本人懒.....)

2、调用xml文件

    FileStorage file_storage;
    file_storage.open(xml_name, FileStorage::READ);
    vectorsrc_test;
    file_storage["images"] >> src_test;

    for (int i = 0; i < src_test.size(); i++) {//依照顺序读取问价下面的每张图片,并显示
        cout << src_test[i] << endl;
    }

FileStorage相关介绍:

FileStorage_zxl2712028的博客-CSDN博客

Open中FileStorage使用_没有最好,只有更好!-CSDN博客_filestorage

你可能感兴趣的:(c++,xml)