我在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对象,但我想在初始化后进行赋值。
答案 0 :(得分:2)
一个选项可能是:
std::memcpy(mat.data, arr, mat.rows*mat.cols*sizeof(float));
另一种选择(可能不适合你,因为你可能需要保留旧标题的一部分):
mat = Mat(2, 3, CV_32F, arr)