cvGetTickCountとcvGetTickFrequencyでmicro second単位で時間を測定できる.

#contents

*int64 cv::getTickCount(); [#ye99a9f1]
*int64 cvGetTickCount(); [#u0a1741e]
現在のクロックカウントを取得する

**引数 [#pb9d3258]
-なし

**返り値 [#w85f3f1c]
-int64型のクロックカウント

*double cv::getTickFrequency(); [#jbc45705]
1 second でのクロック増加数を計算する
*double cvGetTickFrequency(); [#tbd1d7b8]
1 micro second でのクロック増加数を計算する

**引数 [#z0d21374]
-なし

**返り値 [#p6d706a3]
-double型のクロック増加数
-C++インタフェースとCインタフェースで返ってくる数の単位が違うので注意
--Cインタフェース:1 micro second あたりのクロック数
--C++インタフェース:1 second あたりのクロック数
-system.cppのラッパー(2.3.1)
#geshi(c++,number,start=547){{
CV_IMPL double cvGetTickFrequency(void)
{
    return cv::getTickFrequency()*1e-6;
}
}}

*解説 [#m44f5800]
-tick自体に時刻との関連はない.
-tickの差分だけが関係する.
-たぶんCPUのクロック数を拾っているのだと思う.
-int64型はlong long型

*サンプルコード [#t652121b]

#geshi(c++,number){{
 //開始時 start
 int64 start;
 start = cv::getTickCount();
 /* some kind of process */
 //終了時 end
 int64 end = cv::getTickCount();
 std::cout << (end - start) * 1000 / cv::getTickFrequency() << "[ms]" << std::endl;
 std::cout << (end - start) / cvGetTickFrequency() << "[μs]" << std::endl;
}}

*実体ファイル [#m190257b]
-cxcore/include/cxcore.h (OpenCV 1.0)
-cxcore/src/cxswitcher.cpp (OpenCV 1.0)
-include/opencv/cxcore.h (OpenCV 2.1 cインタフェース)
-include/opencv/cxcore.hpp (OpenCV 2.1 c++インタフェース)
-src/cxcore/cxsystem.cpp (OpenCV 2.1)
-modules/core/src/system.cpp (OpenCV 2.3.1)
-modules/core/include/opencv2/core/core.hpp (OpenCV 2.3.1)

ジャンル[[:OpenCV]][[:OpenCV 1.0]][[:OpenCV 2.1]][[:OpenCV 2.3]]準拠

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