*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); }}