【发布时间】:2018-12-12 16:30:22
【问题描述】:
大家好,基本上我有以下内容
下面的 test.cpp
cv::Mat load(string filename){
Mat img = imread(filename,CV_LOAD_IMAGE_COLOR);
GpuMat cudaMat;
cudaMat.upload(img);
cuda::DeviceInfo deviceinfo;
cout << "GPU: "<< deviceinfo.cuda::DeviceInfo::name() << endl;
imshow("opencvtest_load",img);
waitKey(0);
return img;
}
我用 boost 包装如下:
#include<boost/python.hpp>
using namespace boost::python;
BOOST_PYTHON_MODULE(opencvtest)
{
def("load",load);
}
我用make命令生成所有东西,从python代码test.py调用
image = "some directory and image"
from opencvtest import load
img3 = load(image)
所以,实际上我现在需要的是从要处理的加载方法中获取 Mat 转换为 python。
当时我有以下错误:
TypeError:没有找到适用于 C++ 类型的 to_python(按值)转换器:
简历::垫
所以我已经完成了所有库解决方案,因为它们总是会出错。有没有更好的解决方案。提前非常感谢
【问题讨论】:
-
我可能会因此而大发雷霆,但你使用 Modern C 并且你想降级到 python?这就像拥有一辆奥迪或梅赛德斯并用 T-Ford 取代它......
-
事实上,我需要的所有库都已经在 python 中了>
-
请详细说明:如果你想要速度,为什么要首先使用python? python 是一种解释性语言,因此如果你想要速度,这不是一个明智的选择