将OpenCV C++ Mat暴露到Python

2024-09-27 09:22:06 发布

您现在位置:Python中文网/ 问答频道 /正文

大家好基本上我有以下几点

A测试.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代码中生成要调用的所有内容测试.py你知道吗

image = "some directory and image"
from opencvtest import load
img3 = load(image)

所以,实际上我现在需要的是从load方法得到Mat,将其转换为python。你知道吗

当时我有以下错误: TypeError:没有C++的TyPython(按值)转换器:
cv::材料

所以我已经用完了所有的库解决方案,因为它们总是出错。有没有更好的解决办法。提前多谢了


Tags: imageimgstringloadfilenamecppcvcuda

热门问题