我有 85 个 26*7 的二进制图像,将用于训练系统。我试图在 XML 中一个接一个地编写这些图像的每个 Mat,所有这些都在相同的元素名称 *Training_set* 中,如下所示:-
<?xml version="1.0"?>
<opencv_storage>
<Training_set type_id="opencv-matrix">
Mat1 values
Mat2 values
Mat3 values
......
Mat85 values
</Training_set >
</opencv_storage>
使用以下代码:-
FileStorage fs("Samples.xml", FileStorage::WRITE);
// Check if we actually created the file
if(fs.isOpened())
{
IplImage *img = cvLoadImage("eye1.bmp");
Mat imgg=cvarrToMat(img);
fs <<"Training_set"<< imgg;
IplImage *img2 = cvLoadImage("eye2.bmp");
Mat imgg2=cvarrToMat(img2);
fs <<"Trainging_set"<<imgg2;
}
目前,我获得了:-
<?xml version="1.0"?>
<opencv_storage>
<Training_set type_id="opencv-matrix">
Mat1 values
</Training_set >
<Training_set type_id="opencv-matrix">
Mat2 values
</Training_set >
</opencv_storage>
正如您所看到的,它们被分配给相同的元素名称,但分别被分配。这不是我想要实现的。如何在同一元素名称中一次性写入所有 Mat 值。
此 XML 将包含神经网络的训练样本集,使用 Visual Studio C++ 在 Opencv 中开发。