Я пытаюсь прочитать изображение из 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?