OpenCV中经常会使用getTickCount()和getTickFrequency()来计算程序执行时间,在OpenCV源码中也经常能看到这样的操作:
int64 t = getTickCount(); ... ... ... cout << "xxx time" << ((getTickCount() - t) / getTickFrequency()) << "sec";
getTickCount():用于返回从操作系统气筒到当前所经的计时周期数。
getTcikFrequency():用于返回CPU的频率。(C++中单位为秒,也就是每秒重复的次数)
所以
(getTickCount() - t) / getTcikFrequency():(当前次数-开始计时次数)/每秒重复次数=从开始到当前所用时间(s)
例子(QT中):
double time0=static_cast<double>(getTickCount());//记录起始时间 MatQueueTest.enqueue(image);//存到队列里 time0 = ((double)getTickCount()-time0)/getTickFrequency();//结束时间 qDebug()<<"time0 = "<<time0;