1. 程式人生 > >opencv測量程式執行時間

opencv測量程式執行時間

這裡涉及到兩個函式:cvGetTickCount()和 cvGetTickFrequency()

使用時,在程式段的開始和結束時兩次使用cvGetTickCount(),然後將兩次的差除以cvGetTickFrequency()後就可以獲得程式段的以微秒us為單位的執行時間.

具體如下:

double t = (double)cvGetTickCount();

 ////程式碼段

..................

t = (double)cvGetTickCount() - t;
 printf( "exec time = %gms\n", t/cvGetTickFrequency() );  //%g是在%f和%e中較短的形式輸出,並且會省略多餘的0

如果想獲得程式段的以毫秒為單位的執行時間,則將t/cvGetTickFrequency()改為t/(cvGetTickFrequency()*1000)。同理,若想獲得以秒為單位的執行時間,則改為t/(cvGetTickFrequency()*1000000)

說明:

%g是轉換說明符的一種,具體指代浮點數(去掉無意義的0)
%f也可指代浮點數,但輸出時保留無意義的0
例子:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
 float j;
 j=11.2333;
 printf("j=%g\n",j);
         printf("j=%f\n",j);
         return 1;
}
執行程式後,終端輸出:
j=11.2333
j=11.233300