Opencv Mat作为函数

时间:2017-12-25 10:39:12

标签: opencv matrix mat

我现在用opencv Mat遇到了麻烦。

这是一个功能

void getMat(Mat a){

   double b[3]={1,2,3};

   a=Mat(3,1,CV_64FC1,b);

}

当我在main

中使用该功能时
Mat mat(3,1,CV_64FC1);

getMat(mat);

但是mat的结果是

[-9.255963134931783e+61;
  -9.255963134931783e+61;
  -9.255963134931783e+61]

那么有人可以帮助我摆脱这个问题吗?

非常感谢

最佳

1 个答案:

答案 0 :(得分:1)

使用参考参数和copyTo对象;

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

void getMat(Mat &mat){
   double b[3]={1,2,3};
   Mat _mat(3,1,CV_64FC1,b);
   _mat.copyTo(mat);
}

int main(){
    Mat a;
    getMat(a);
    cout << a <<endl;
    return 0;
}

/*
[1;
 2;
 3]
*/