【发布时间】:2015-11-06 13:31:42
【问题描述】:
OpenCV3 引入了它的 T-API(透明 API),它使用户可以使用 GPU(或其他支持 OpenCL 的设备)加速的功能,我正在努力寻找如何使用 Python 来利用它。
在 C++ 中,当您使用 UMat 而不是 Mat 对象时,像 ocl::setUseOpenCL(true); 这样的调用会启用 OpenCL 加速。但是我没有找到任何关于 Python 的文档。
有人有关于如何在 Python 中使用 OpenCV3 实现 OpenCL 加速的示例代码、链接或指南吗?
更新:
经过进一步挖掘,我在modules/core/include/opencv2/core/ocl.hpp 找到了这个:
CV_EXPORTS_W bool haveOpenCL();
CV_EXPORTS_W bool useOpenCL();
CV_EXPORTS_W bool haveAmdBlas();
CV_EXPORTS_W bool haveAmdFft();
CV_EXPORTS_W void setUseOpenCL(bool flag);
CV_EXPORTS_W void finish();
我设法从 Python 调用:
print(cv2.ocl.haveOpenCL())
cv2.ocl.setUseOpenCL(True)
print(cv2.ocl.useOpenCL())
它会产生以下输出:
True
True
但是它仍然运行相同,我想我仍然没有使用 OpenCL,因为我没有在 Python 中使用 UMat。
【问题讨论】: