OpenCv Самый быстрый способ сделать Mat Image из 1 D Array в C ++ - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в OpenCV. У меня есть unsigned char массив размером 5038848, чтобы создать Image of 1944*2592, что является самым быстрым способом создания изображения из этого 1-мерного массива. Я сделал это, используя Nested Loop, но думаю, что создание одного кадра занимает много времени. Так может кто-нибудь сказать, пожалуйста, другое решение, которое быстрее, чем это.

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете создать пустой 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...