c++ type from dtype(如何从numpy数组初始化cv::Mat)



pybind11在numpy.h中有以下方法:

/// Return dtype associated with a C++ type.
template <typename T>
static dtype of() {
return detail::npy_format_descriptor<typename std::remove_cv<T>::type>::dtype();
}

我怎么得到逆矩阵?从类型为dtype的变量获取c++类型?

编辑

我原来的问题是,我想把一个OpenCV图像从python到c++,如这里所述,请注意,在这个答案中完成的转换总是类型unsigned char*:

cv::Mat img2(rows, cols, type, (unsigned char*)img.data());

我想做的是使用.dtype()来获得"python类型"。然后进行右强制转换。

因此,我的函数签名以py::array作为参数。

int cpp_callback1(py::array& img)
{
//stuff
cv::Mat img2(rows, cols, type, (unsigned char*)img.data());
^^^ Somehow I want this to be variable
//more stuff
}

也许我可以从我的dtype中得到type_id?

cv::Mat有一个接受void*作为数据指针的构造函数。

因此,您不需要将dtype转换为c++类型。
你可以直接使用:
cv::Mat img2(rows, cols, type, (void*)img.data());

相关内容

  • 没有找到相关文章