Как преобразовать ndarray в opencv :: Mat, используя Boost.Python? - PullRequest
0 голосов
/ 22 октября 2018

Я читаю изображение в Python и передаю этот массивный массив в C ++ с помощью Boost.Python и получаю его в ndarray.

Мне нужно преобразовать его в cv::Mat для выполнения операций в OpenCVC ++.

Как мне это сделать?

1 Ответ

0 голосов
/ 24 октября 2018

Наконец, я нашел решение для этого из документации:

Мы должны получить массив numpy как numeric::array в C ++ и выполнить следующие шаги, чтобы легко преобразовать numpy в cv::mat эффективно.

void* img_arr = PyArray_DATA((PyObject*)arr.ptr());

И нам нужно передать этот void ptr в конструктор cv :: Mat с другими необходимыми параметрами.

Mat image(rows, cols , CV_8UC3, img_arr);
  1. int параметр: Ожидается no.строк
  2. int параметр: Ожидается номер.of cols
  3. Параметр типа: Ожидает тип изображения.
  4. Параметр Void Pointer: Ожидает данные изображения.

И это решает проблему !!!!.

...