Есть ли способ считывать значения из двух разных буферов в matlab :: data :: Array в С ++ с использованием api механизма matlab? - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь прочитать изображение из C ++ и обработать его с помощью MATLAB через API механизма MATLAB . Данные изображения хранятся в трех буферах, по одному для каждого канала изображения. Мне нужно прочитать буферы в одну переменную matlab :: data :: array или matlab :: TypedArray, чтобы передать ее в MATLAB для обработки. В настоящее время я создаю пустой массив, используя функцию createEmptyArray () в matlab :: data api , но при попытке я получаю ошибку памяти кучи для доступа к нему, как указано ниже:

double* data = getBuffer();
auto data_p = factory.createBuffer<double>(h*w);
double* dataPtr = data_p.get();
std::for_each(data, data + (h*w), [&](const double& e) { *(dataPtr++) = e; });

Array input_image = factory.createEmptyArray();
input_image[0] = factory.createArrayFromBuffer({ uint64_t(w),uint64_t(h) }, std::move(data_p));

Где data_p - это буфер данных, который содержит данные одного канала. Есть ли способ добавить данные из трех разных каналов в одну переменную массива перед их передачей в MATLAB?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...