OpenCV:将向量堆叠到 Mat
OpenCV: Stack Vectors to Mat
我有 3 个 Vec3f,想将它们堆叠成一个 3x3 矩阵 (C++)。
有什么好的方法吗?在 python 中使用 numpy 很容易,但是我不知道是否有比将 Vector 中的每个值分配给相应的 Mat 条目更好的方法?
干杯
是的,你可以。这取决于你想要的精确打包安排,但最简单的方法是简单地将它们的字节复制到一个适当大小的 Mat 中。
您使用 &v[0] 访问单个 Vec3f 实例 Vec3f v 的字节。您可以使用 m.data(不是函数)访问矩阵 Mat m 的字节。
这是一个例子:
cv::Mat m(3, 3, CV_32FC3);
cv::Vec3f vecs[3];
memcpy((void*)m.data, (const void*)&vecs[0][0], m.width * m.height * 3 * sizeof(float));
我有 3 个 Vec3f,想将它们堆叠成一个 3x3 矩阵 (C++)。 有什么好的方法吗?在 python 中使用 numpy 很容易,但是我不知道是否有比将 Vector 中的每个值分配给相应的 Mat 条目更好的方法?
干杯
是的,你可以。这取决于你想要的精确打包安排,但最简单的方法是简单地将它们的字节复制到一个适当大小的 Mat 中。
您使用 &v[0] 访问单个 Vec3f 实例 Vec3f v 的字节。您可以使用 m.data(不是函数)访问矩阵 Mat m 的字节。
这是一个例子:
cv::Mat m(3, 3, CV_32FC3);
cv::Vec3f vecs[3];
memcpy((void*)m.data, (const void*)&vecs[0][0], m.width * m.height * 3 * sizeof(float));