سلام. خدمت دوستان عزیز
من به این روش کلاس cv::Rect را سریالایز می کنم و تو یک کلاس دیگر که اون هم باید سریالایز بشه ازش استفاده می کنم ولی خطا میده کسی راه حلی داره برای این موضوع
void to_json(json& j, const cv::Rect& rect)
{
j =
nlohmann::json
{
{"x", rect.x},
{"y", rect.y},
{"w", rect.width},
{"h", rect.height}
};
}
void from_json(const json& j, cv::Rect& rect)
{
j.at("x").get_to(rect.x);
j.at("y").get_to(rect.y);
j.at("w").get_to(rect.width);
j.at("h").get_to(rect.height);
}
class ConstR {
public:
ConstR() {}
ConstR(int id, const cv::Rect& region) :
id_{ id },
region_{ region } {
}
int id_;
cv::Rect region_;
void print() {
cout << "id:" << id_ << endl;
cout << "region:" << region_ << endl;
}
};
void to_json(json& j, const ConstR& p)
{
j = { {"id", p.id_}, {"region", p.region_}};
}
void from_json(const json& j, ConstR& p)
{
j.at("id").get_to(p.id_);
j.at("region").get_to(p.region_);
}