使用c ++将mat转换为opencv中的内存

时间:2013-09-20 12:16:02

标签: c++ opencv

无论如何将mat转换为opencv中的数组? (C ++) 我需要将矩阵(函数的输出)复制到指针指向的位置。 输出格式为Mat,指针为float。我该如何复制?

提前致谢

1 个答案:

答案 0 :(得分:2)

Mat也是类所涵盖的二维数组。如果您需要数据,可以使用Mat :: at(int x,int y)方法访问它。或者复制原始数据:

cv::Mat matrix;
float *new_data = new float[matrix.rows*matrix.cols];
float *p = new_data;
for(int i  = 0; i < matrix.rows; i++){
    memcpy(p, matrix.ptr(i), matrix.cols*sizeof(float));
    p += matrix.cols;
}