如何使用Boost.Python将ndarray转换为opencv :: Mat?

时间:2018-10-22 07:47:53

标签: python-3.x c++11 boost-python mat numpy-ndarray

我正在读取Python中的图像,并使用Boost.Python将numpy数组传递给C ++,并在ndarray中接收它。

我需要将其转换为cv::Mat才能在OpenCV C ++中执行操作。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

最后,我从文档中找到了解决方案:

我们必须在C ++中将numpy数组接收为numeric :: array,并且必须执行以下步骤才能轻松地将numpy有效地转换为cv :: mat。

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

我们需要将此void ptr与其他必需参数一起传递给cv :: Mat构造函数。

垫子图像(行,列,CV_8UC3,img_arr);

1)int参数:期望编号。行数 2)int参数:期望的编号。列数 3)类型参数:期望图像的类型。 4)空指针参数:需要图像数据。

这可以解决问题!!!!。