你可以直接使用:
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());