OpenCV中UMat和Mat有什么区别?

时间:2015-11-09 04:42:26

标签: opencv mat

我查看过文档并没有得到关于UMat的详细描述;但我认为它与GPU和CPU有关。请帮帮我。 谢谢。

1 个答案:

答案 0 :(得分:40)

也许本文档的第3部分会有所帮助:[link now broken] https://software.intel.com/sites/default/files/managed/2f/19/inde_opencv_3.0_arch_guide.pdf

具体而言,第3.1节:

  

统一抽象cv :: UMat,它允许使用CPU或OpenCL代码实现相同的API,而无需显式调用OpenCL加速版本。这些函数使用支持OpenCL的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