OpenCV中UMat和Mat有什么区别?

37

我已经查阅了文档,但没有得到关于UMat的清晰详细说明;然而,我认为它与GPU和CPU有关。请帮助我解决这个问题。 谢谢。

1个回答

53
也许这个文档的第三部分可以帮到您:[链接已失效] https://software.intel.com/sites/default/files/managed/2f/19/inde_opencv_3.0_arch_guide.pdf 具体来说,是第3.1节:
一个统一的抽象cv::UMat,它使得相同的API可以使用CPU或OpenCL代码实现,而不需要显式地调用OpenCL加速版本。如果系统中存在支持OpenCL的GPU,则这些函数将使用该GPU,并在否则自动切换到CPU操作。
还有第3.3节:
通常,cv::UMat是C++类,非常类似于cv::Mat。但实际的UMat数据可以位于常规系统内存、专用视频内存或共享内存中。

以下是@BourbonCreams在评论中建议的用法链接:
https://docs.opencv.org/3.0-rc1/db/dfa/tutorial_transition_guide.html#tutorial_transition_hints_opencl


1
链接已经失效。我找到了这个,但是它的解释非常简要:https://docs.opencv.org/3.0-rc1/db/dfa/tutorial_transition_guide.html - BourbonCreams
@BourbonCreams 哇,这确实非常简短 ;) 我之前在 Wayback Machine 上尝试查找过,但遗憾的是该页面没有被归档。希望我引用的部分足以让人们开始工作。我会添加一条说明,指出链接已经失效。谢谢! - beaker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接