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

int64 cv::getTickCount();

int64 cvGetTickCount();

現在のクロックカウントを取得する

引数

  • なし

返り値

  • int64型のクロックカウント

double cv::getTickFrequency();

1 second でのクロック増加数を計算する

double cvGetTickFrequency();

1 micro second でのクロック増加数を計算する

引数

  • なし

返り値

  • double型のクロック増加数
  • C++インタフェースとCインタフェースで返ってくる数の単位が違うので注意
    • Cインタフェース:1 micro second あたりのクロック数
    • C++インタフェース:1 second あたりのクロック数
  • system.cppのラッパー(2.3.1)
    1. CV_IMPL double cvGetTickFrequency(void)
    2. {
    3.     return cv::getTickFrequency()*1e-6;
    4. }

解説

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

サンプルコード

  1.  //開始時 start
  2.  int64 start;
  3.  start = cv::getTickCount();
  4.  /* some kind of process */
  5.  //終了時 end
  6.  int64 end = cv::getTickCount();
  7.  std::cout << (end - start) * 1000 / cv::getTickFrequency() << "[ms]" << std::endl;
  8.  std::cout << (end - start) / cvGetTickFrequency() << "[μs]" << std::endl;

実体ファイル

  • 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
Last-modified: 2012-11-28 (水) 13:38:43 (1815d)