OpenCv 在 C++ 中从一维数组制作 Mat Image 的最快方法

OpenCv Fastest way to make Mat Image from 1 D Array in C++

我是 OpenCV 的新人。我有一个大小为 5038848unsigned char 数组来创建一个 Image of 1944*2592 从该 1 D 数组制作图像的最快方法。 我已经使用 Nested Loop 完成了此操作,但我认为创建单个框架需要很多时间。 那么谁能告诉其他比这更快的解决方案。

您可以创建一个空的 Mat 并将数据设置为您的数组。

unsigned char* array = ...
img = cv::Mat(1944,2592, CV_8U);
img.data = array;

cv::imshow('My image', img);
cv::waitKey()

一种更快的方法是直接使用您的数据创建 Mat。这样,创建对象时就不会分配数据指针。它也可能更安全,因为您不直接操作内部数据指针。

img = cv::Mat(1944, 2592, CV_8U, array);