داده های struct را داخل {} قرار دهید.
داده های vector را داخل [] قرار دخید.
void loadData(const cv::FileStorage& fs,std::vector<Data>& datas) {
cv::FileNode data_nodes = fs["datas"];
for (auto it = data_nodes .begin(); it != data_nodes.end(); it++) {
Data cur_node;
(*it)["x"] >> cur_node.x;
(*it)["y"] >> cur_node.y;
Datas.push_back(cur_node);
}
fs.release();
}
void saveData(cv::FileStorage& fs,const std::vector<Data>& datas)
{
fs << "datas" << "[";
auto it = datas.begin();
for (int i = 0; i < datas.size(); i++) {
fs << "{" << "x" << data[i].x << "y" << data[i].y << "}";
it++;
}
fs << "]";
fs.release();
}
void load(const std::string& file_name){
cv::FileStorage fs(file_name, cv::FileStorage::READ);
std::vector<Data> datas;
loadData(fs,datas);
fs.release();
}
void save(const std::string& file_name){
cv::FileStorage fs(file_name, cv::FileStorage::WRITE);
std::vector<Data> datas;
saveData(fs,datas);
fs.release();
}