*OpenCV/Method used for oclMat on OpenCV 2.4.3 [#l47ae3d4]
#multilang(ja){{
**概要
OpenCLを使った実装oclMatがOpenCV 2.4.3より追加されました.&br;
ここではoclMatの基本的な使い方を説明します.詳細は[[公式ドキュメント:http://docs.opencv.org/modules/ocl/doc/ocl.html]]を参照ください.&br;
※以降の説明は事前にOpenCL開発環境が導入されていることが前提です.

**使い方
***OpenCVのビルド
OpenCVをCMakeを用いてビルドする.

+''WITH_OPENCL''にチェックを入れた後,「Configure」ボタンを押し,「Generate」ボタンを押す.
&br;&ref(http://atinfinity.info/img/opencv/cmake_with_opencl_0001.png);&br;&br;&br;
+OpenCVをビルドする.
+oclライブラリをプロジェクトに追加する.
|OS|ライブラリ名|
|BGCOLOR(white):Windows|BGCOLOR(white):opencv_ocl243.lib|
|BGCOLOR(white):Mac|BGCOLOR(white):libopencv_ocl.dylib|

***基本的な流れ
+''cv::ocl::getDevice''関数をコールしてOpenCLデバイスを初期化
+oclMatのコンストラクタを使って''cv::Mat''から''cv::ocl::oclMat''に変換
+oclMatで用意されている画像処理関数をコール(サンプルコードではocl::resizeを使用)
+download関数を使って''cv::ocl::oclMat''から''cv::Mat''に変換

**サンプルコード
#code(C,nooutline,nonumber,http://www.atinfinity.info/opencv/sample/oclmat_sample.cpp)

**注意点
-OpenCLデバイスとCPU間の転送(upload,download)は遅いので呼び出しは必要最小限にする
-OpenCL実装関数の初回実行は(kernelのコンパイル含むため)遅いので起動時にダミーとして呼んでおくと良い

**Contact
間違い・御指摘等ありましたら,&br;&br;
&ref(http://atinfinity.info/img/mail.png);
&br;&br;までメールにてご連絡ください.

}}

#multilang(en){{
**Abstract
''oclMat'' module(=OpenCL implementation) is added from OpenCV 2.4.3.&br;
This page describes the method to use this module.&br;
If you want to know the detailed information, please read
[[Official document:http://docs.opencv.org/modules/ocl/doc/ocl.html]].

The following description is assumed that the development environment of OpenCL has been installed previously.

**Usage
***Build OpenCV
You need to build OpenCV using CMake.

+Please enable ''WITH_OPENCL'', push ''Configure'' button and push ''Generate'' button.
&br;&ref(http://atinfinity.info/img/opencv/cmake_with_opencl_0001.png);&br;&br;&br;
+Please build OpenCV.
+Please add the following library to your project.

|OS|Library|
|BGCOLOR(white):Windows|BGCOLOR(white):opencv_ocl243.lib|
|BGCOLOR(white):Mac|BGCOLOR(white):libopencv_ocl.dylib|

***Basic processing flow
+call ''cv::ocl::getDevice()'' for the initialization of OpenCL device.
+converts to ''cv::ocl::oclMat'' from ''cv::Mat'' by of the constructor of oclMat.
+call image processing function of oclMat.
+converts to ''cv::Mat'' from ''cv::ocl::oclMat'' by download().

**Sample
#code(C,outline,number,http://www.atinfinity.info/opencv/sample/oclmat_sample.cpp)
#code(C,nooutline,nonumber,http://www.atinfinity.info/opencv/sample/oclmat_sample.cpp)

**Notes
-Transfer between CPU and GPU(upload() and download()) is very slow. So, you need to minimize the number of calls.
-The first execution of oclMat's image processing is slow. Because, compile of OpenCL kernel is processed too. You may avoid by the call of function as dummy at startup.

**Contact
If you have question, please send e-mail to the following address.&br;&br;
&ref(http://atinfinity.info/img/mail.png);
}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS