[英]How to Compare an Image with Database in C++ opencv
之前可能已经问过几次了。 但是我觉得我的与众不同,并且由于我对概念缺乏完全的了解,因此我将其再次发布。
我正在Ubuntu上用C ++编写的可以匹配静脉模式的opencv代码。 我已经捕获了4个静脉图像。 在我的程序中,我想从红外热像仪捕获新图像并将其与图像目录中的图像进行比较。 我打算使用模糊C聚类算法进行匹配。 我创建了一个用户菜单,其中一个选项将我的算法与FLANN,SIFT等进行比较。此比较是基于花费的时间。 您如何计算计算所需的时间?
我是模糊聚类的新手,任何可能会有所帮助的教程/示例代码都将不胜感激。
另外,您能否建议如何比较从照相机捕获的文件与Linux目录中的文件?
编辑1:使用Canny Edge Detector上传了两个样本静脉模式。
www.i.imgur.com/mvt3kIy.jpg(Canny Edge 1)
www.i.imgur.com/8GwaLTu.jpg(Canny Edge 2)
请提出一些比较方法。
要计算一组指令之间经过的时间,
#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文档和相关文章。 此链接将为您提供功能描述的入门。
我将此功能用于计时:
#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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.