web-dev-qa-db-ja.com

OpenCVのUMatとMatの違いは何ですか?

私はドキュメントを見てきましたが、UMatに関する明確な詳細な説明は得られませんでした。ただし、GPUとCPUに関連するものがあると思います。私を助けてください。ありがとうございました。

23
Aniket Sharma

おそらく、このドキュメントのセクション3が役立つでしょう:[リンクが壊れています] https://software.intel.com/sites/default/files/managed/2f/19/inde_opencv_3.0_Arch_guide.pdf

具体的には、セクション3.1:

OpenCLアクセラレーションバージョンを明示的に呼び出す必要なしに、CPUまたはOpenCLコードを使用して同じAPIを実装できるようにする統一された抽象化cv :: UMat。これらの関数は、システムに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

40
beaker