我想用C ++编写一个将矩阵作为可选参数的函数。如果用户最终在调用函数时传递矩阵,则该矩阵将被函数修改,因此我正在实现按引用传递。
根据先前问题的公认答案,可以通过将默认值设置为空Mat来完成,例如:
void foo(..., cv::Mat &matrix = cv::Mat()) {
// code
return;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在OpenCV 3.2中进行编译时,从类型为'cv :: Mat'的右值中得到«无效的初始化类型'cv :: Mat&'的非常量引用»错误。
自OpenCV 2.4起,此功能是否已更改,或者问题可能出在其他地方?