在OpenCV C ++中将数组分配给初始化的Mat对象

时间:2017-11-30 20:58:16

标签: c++ opencv

我在C ++中使用OpenCV(3.3.1)。我有一个初始化的Mat对象和一个数组

Mat mat(2, 3, CV_32F, Scalar::all(0.5));
float arr[6] = {1,2,3,4,5,6};

我希望在初始化后者将数据中的数据分配给Mat对象。如何有效地做到这一点?

我知道我可以使用Mat mat(2, 3, CV_32F, arr);使用数组初始化Mat对象,但我想在初始化后进行赋值。

1 个答案:

答案 0 :(得分:2)

一个选项可能是:

std::memcpy(mat.data, arr, mat.rows*mat.cols*sizeof(float));

另一种选择(可能不适合你,因为你可能需要保留旧标题的一部分):

mat = Mat(2, 3, CV_32F, arr)