variable matriz library copyto opencv mat

matriz - ¿Cuál es la diferencia entre UMat y Mat en OpenCV?



opencv mat to image (1)

Quizás la sección 3 de este documento ayude a: [enlace ahora roto] https://software.intel.com/sites/default/files/managed/2f/19/inde_opencv_3.0_arch_guide.pdf

Específicamente, la sección 3.1:

Un cv :: UMat de abstracción unificada que permite que se implementen las mismas API utilizando la CPU o el código OpenCL, sin el requisito de llamar explícitamente a la versión acelerada de OpenCL. Estas funciones utilizan una GPU habilitada para OpenCL si existe en el sistema y, de lo contrario, cambian automáticamente al funcionamiento de la CPU.

y sección 3.3:

En general, cv :: UMat es la clase C ++, que es muy similar a cv :: Mat. Pero los datos reales de UMat pueden ubicarse en una memoria normal del sistema, una memoria de video dedicada o una memoria compartida.

Enlace al uso sugerido en los comentarios de @BourbonCreams :
https://docs.opencv.org/3.0-rc1/db/dfa/tutorial_transition_guide.html#tutorial_transition_hints_opencl

He revisado la documentación y no obtuve una descripción clara y detallada sobre UMat; Sin embargo, creo que tiene algo que ver con la GPU y la CPU. Por favor, ayúdame. Gracias.