#include <iostream>
#include <vector>
#include <opencv2/opencv.hpp>
#include <variant>
using DataVariant = std::variant<int, std::string, float, double, cv::Mat, std::vector<std::vector<int>>>;
typedef struct DataMap{
std::string key;
DataVariant value;
}DataMap;
void CreateValueInYml(const std::string &filename, std::vector<DataMap> dataMaps) {
std::map<std::string, DataVariant> data;
for (size_t i= 0 ; i < dataMaps.size(); ++i){
std::string Key = dataMaps[i].key;
DataVariant Value = dataMaps[i].value;
data[Key] = Value;
}
cv::FileStorage fs_write(filename, cv::FileStorage::WRITE);
if (fs_write.isOpened()) {
for (const auto &[key, val] : data) {
fs_write << key;
std::visit([&fs_write](auto &&value) {
fs_write << value;
},
val);
}
fs_write.release();
} else {
std::cerr << "Error: Unable to open file for writing." << std::endl;
}
}
c++通过OpenCV创建Ymal文件
于 2024-07-19 16:30:36 首次发布