OpenCv用C ++从一维数组制作Mat图像的最快方法

时间:2018-07-05 06:28:38

标签: c++ arrays image opencv mat

我是OpenCV的新朋友。我有一个大小为unsigned char的{​​{1}}数组,用于创建一个5038848的最快方法是从该1 D数组中制作图像。 我已经使用Image of 1944*2592完成了此操作,但我认为创建单个框架会花费很多时间。 所以任何人都可以告诉其他解决方案比这更快的方法。

1 个答案:

答案 0 :(得分:2)

您可以创建一个空的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);