之前可能已多次询问过这个问题。但我觉得我有点不同,因为我对概念缺乏完整的理解,所以我再次发布它。
我正在研究在Ubuntu上用C ++编写的opencv代码,它可以匹配静脉模式。我拍摄了4张静脉图像。在我的程序中,我想从红外摄像机捕获一个新图像,并将其与图像目录中的图像进行比较。我计划使用模糊C聚类算法进行匹配。我创建了一个用户菜单,其中一个选项是将我的算法与FLANN,SIFT等进行比较。此比较基于所花费的时间。你如何计算计算所需的时间?
我是模糊聚类的新手,非常感谢任何可能有用的教程/示例代码。
另外,您能否建议如何将从摄像头捕获的文件与linux目录中的文件进行比较?
编辑1:使用Canny Edge Detectors上传了两个样本静脉图案。
www.i.imgur.com/mvt3kIy.jpg(Canny Edge 1)
www.i.imgur.com/8GwaLTu.jpg(Canny Edge 2)
请建议一些比较相同的方法。
答案 0 :(得分:0)
计算一组指令之间经过的时间
#include <time>
int main()
{
// whatever code
clock_t tstart = clock();
/// more code and implementations
cout << "Processing time = " << (double)(clock() - tstart)/(CLOCKS_PER_SEC) << " second(s)" << endl;
}
您可以通过多种方式比较2个文件;如果您发布一些图像,我可能会进一步指导您。您可以尝试阅读一些OpenCV文档和相关文章。 This link将为您提供功能描述的先机。
答案 1 :(得分:0)
我将此功能用于计时:
#include <sys/time.h>
#include <iostream>
inline long getMilliSecs()
{
timeval t;
gettimeofday(&t, NULL);
return t.tv_sec*1000 + t.tv_usec/1000;
}
int main()
{
long start_time = getMilliSecs();
///
//do stuff;
///
long end_time = getMilliSecs();
std::cout << ((double)(end_time - start_time))/1000 << " seconds" << std::endl;
}