我正在读取Python中的图像,并使用Boost.Python将numpy数组传递给C ++,并在ndarray
中接收它。
我需要将其转换为cv::Mat
才能在OpenCV C ++中执行操作。
我该怎么做?
答案 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)空指针参数:需要图像数据。
这可以解决问题!!!!。