2015年10月25日日曜日

基本 - GpuMat

さて cv::Mat で宣言した画像(フレーム)はcv::Mat::~ のように宣言される関数に対応します.
これによってCPUを用いた処理がなされます. 
これらは一般的に汎用性が高く,処理は遅いとか言われますね.

 一方でグラフィックボードを用いた処理をGPU処理といい,
 これらは一般的にある種の処理について高速化できると言われます. 

詳しくはこちら >> 日本GPUコンピューティングパートナーシップ


さてOpenCV3.0ではCUDAを用います.

cv:: で読み込むライブラリはCPU処理, 
cv::cuda:: で読み込むライブラリはGPU処理的な感覚です.

 cv::Mat は cv::cuda::GpuMat で宣言することができます. 

基本的には同じですが,画像を表示する cv::imshow を利用する場合などは
CPU用とGPU用に変数を用意しておくと便利かも?

例えば

cv::Mat temp;// 読み込んだ画像をtempにいれる 
cv::cuda::GpuMat TEMP;
// CPU処理 
TEMP.upload(temp); // temp の中身を TEMP に入れる 
// GPU処理 
TEMP.download(temp); // TEMP の中身を temp に戻す 
// CPU処理 

自分はこんな感じですけど,冗長なのかな. ま,こんな感じですねー.


詳しくはこちら >> cv::cuda::GpuMat Class Reference

0 件のコメント:

コメントを投稿