В чем разница между UMat и Mat в OpenCV?
Я просмотрел документацию и не получил четкого подробного описания UMat; однако я думаю, что у него есть что-то связанное с GPU и CPU. Пожалуйста, помоги мне. Спасибо.
1 ответов
возможно, раздел 3 этого документа поможет: [ссылка теперь сломана] 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. Эти функции используют GPU с поддержкой OpenCL, если он существует в системе, и автоматически переключиться на работу процессора в противном случае.
и раздел 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