![]() |
OpenCV 4.12.0
开源计算机视觉
|
此类是常规 GComputation 的类型化包装器。更多...
此类是常规 GComputation 的类型化包装器。
类似 std::function<> 的模板参数指定了图签名,因此对象构造函数、apply() 等方法以及派生的 GCompiledT::operator() 也变为类型化的。
使用此类的对象时,无需使用 cv::gin() 或 cv::gout() 修饰符。相反,所有输入参数都跟在所有输出参数之后,顺序来自模板参数签名。
请参阅以下示例。常规(非类型化)代码是这样编写的
在这里
apply() 实际上接受任意数量的参数(作为向量),因此用户可以在这里传递错误的输入/输出数量。C++ 编译器不会注意到这一点,因为 cv::GComputation API 是多态的,并且只会生成运行时错误。现在使用类型化 API 编写相同的代码
关键区别在于
GComputationT<> 签名中定义的值。apply() 不需要任何额外的说明符来区分输入参数和输出参数GCompiledT(编译产物)也接受输入/输出参数,而无需额外的说明符。