这俩函数看上去长得太像了,笔者曾经马大哈地把两者当成一个函数了(确实长得很像),知道有一天发现返回的值离预期值差很远差仔细查了下。
1. getTickCount()
实际上,该函数为opencv中的函数,该函数返回的值为自从某一时刻(比如计算机启动)开始,计算机总共经过的tick的次数,其需要结合getTickFrequency()函数使用,getTickFrequency()返回的是CPU在一秒钟内会发出的tick的次数,总体来说,该函数的精度较高,能够精确到1ms左右,获得时间的一个例子如:
double t = (double)getTickCount();
//do sth.
t = ((double)getTickCount() - t)/getTickFrequency(); //获得时间,单位是秒
使用时应注意加上 using namespace cv;
2. GetTickCount()
首字母大写后,该函数即为windows编程自带的API函数了,也是统计时间用的,但是用起来的时候,返回的值直接就是ms.根据参考文献1,其精度大概只有18ms左右。
使用时,应注意:
库文件:kernel32.dll
C/C++头文件:winbase.h
Reference
[1] GetTickCount, http://baike.baidu.com/link?url=RYtSl34MY7OtEi97RlNdh9vN_08ihfkcw30rrF5TgUZ4G6UJP4-7Oy3sjmaPBakwFFR7ZdHJyF6cQk0P_wnFKa
[2] GetTickCount() 函数的作用和用法, http://www.cnblogs.com/jxsoft/archive/2011/10/17/2215366.html
[3] opencv 2.4.5帮助手册