OpenCV C++ 使用 cv::UMat 而不是 cv:Mat 和指针

OpenCV C++ using cv::UMat instead of cv:Mat and pointers

我想更改 OpenCV 中的一些代码以使用 cv::UMat 而不是 cv::Mat 以在处理图像时使用 OpenCL/GPU 获得额外的速度。

但是我以前直接通过指针访问图像数据的方法已经不起作用了,例如:

cv::Vec3b* imageP = image.ptr<cv::Vec3b>(y)

其中图像是 cv::Mat,y 是图像行偏移量,因为 UMat 不存在 Ptr() 方法。

UMat 的正确语法是什么?有可能吗?

谢谢。 我搜索了很多,我知道没有简单的解决方案,但是在 Mat 和 UMat 之间来回复制太慢了:(