把中间变量或者结果保存在xml里面,便于观察或者在别的代码里调用。
CV有xml接口,可以直接把CV里面的数据结构写进xml,非常方便。用到的是
class FileStorage
具体介绍:http://docs.opencv.org/modules/core/doc/xml_yaml_persistence.html
里面有例程
简单的例子:
导出数据
Mat lut;
... //lut赋值
FileStorage fs("lut.xml", FileStorage::WRITE);
fs<<"lut"<<lut;
导入数据
FileStorage fs("lut.xml", FileStorage::READ);
fs["lut"]>>lut;
从数组导出数据
FileStorage fs("lut.yml", FileStorage::WRITE);
fs << "lut" << "[:";
for(int jj=0;jj<65536;jj++)
{
fs<<lut.at<data_type>(jj);
}
fs << "]";
fs.release();
注意:
xml的读和写均需要耗费时间,如果数据不是很庞大,或者必须通过xml作为载体传数据,则无需采用该方式。
xml的数组元素之间用空格分隔,而yml的数组元素则是用逗号分隔(可以直接copy进代码用于数组初始化)