5#include <opencv2/core.hpp>
9 std::array<uint8_t, 3> color;
14 std::vector<float> mean;
15 std::vector<float> std;
16 std::vector<ClassInfo> classes;
19ModelConfig load_config(
const std::string &config_path)
21 cv::FileStorage fs(config_path, cv::FileStorage::READ | cv::FileStorage::FORMAT_JSON);
23 throw std::runtime_error(
"Could not open config file: " + config_path);
28 cv::FileNode mean_node = fs[
"mean"];
29 for (
const auto& val : mean_node) {
30 config.mean.push_back((
float)val);
33 cv::FileNode std_node = fs[
"std"];
34 for (
const auto& val : std_node) {
35 config.std.push_back((
float)val);
38 cv::FileNode classes_node = fs[
"classes"];
39 for (
const auto& class_node : classes_node) {
41 class_node[
"name"] >> class_info.name;
43 cv::FileNode color_node = class_node[
"color"];
44 for (
int i = 0; i < 3; ++i) {
45 if (color_node[i].isInt()) {
46 color_node[i] >> class_info.color[i];
48 throw std::runtime_error(
"Color values must be integers in range [0, 255]");
51 config.classes.push_back(class_info);
Definition helpers.hpp:13