根据用户的选择,一个程序中有许多不同的OpenCV图像处理算法可以被创建和运行。 我正在尝试将它们统一为某种标准。因此,每个人都包裹在这样的类中:
class imageProcessor{
public:
ProcessorParameter_t Param[PARAM_NR];
imageProcessor();
void Process(cv::Mat input, cv::Mat *output);
};
“参数”变量(用户可修改,可加载,可保存)的存储方式如下:
enum ProcessorParams{ PARAM_MARKER_X, PARAM_MARKER_Y,
PARAM_NR};
struct ProcessorParameter_t{
std::string Name;
union Number{
float f;
double d;
cv::Scalar s;
bool b;
};
主要目的是以后将任何变量列表传递给GUI,无论当前正在运行哪个imageProcessor
及其包含的变量,都要无限制地保存和加载它们。
所以问题是,有什么传统的方法可以做这种事情,所以我不必重新发明轮子。
编辑:
所有imageProcessor
类都是不同的,并且具有不同数量的变量。单个常见的事物是Process(...)
。
工会将由std::variant
代替