下面是我的函数原型(prototype)。
void devectorize(Mat &vec,Mat mask,Mat& img);
当我尝试在代码中调用此函数时出现以下错误。原因是什么?
Mat V;
for(int i=0;i<V.cols;i++)
{
devectorize(V.col(i),mask,E_img); //Error in this line
}
最佳答案
您不能将非常量引用绑定(bind)到临时对象。在您的情况下, devectorize 的第一个参数是非常量引用,而 V.col(i)
的返回值是临时值。这段代码会起作用
for (int i = 0; i < V.cols; i++)
{
Mat tmp = V.col(i);
devectorize(tmp, mask, E_img);
}
所以将 devectorize 的第一个参数更改为
const Mat&
。关于c++ - 错误 : invalid initialization of non-const reference of type 'cv::Mat&' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18548495/