我正在研究静脉模式识别项目。我已经与SURF探测器进行了一对一的匹配,只需给出文件名即可正常工作。现在,有没有办法,我可以进行一对多的比较并打开最大程度匹配图像的图像?比如输入一个文件名并与目录中的图像进行比较?是否有一些内置函数可以用于遍历images目录?
我在C ++,Ubuntu 12.04LTS,Opencv中使用该项目。
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用以下函数获取给定文件夹中的所有文件。
int getdir (string dir, vector<string> &files)
{
DIR *dp;
struct dirent *dirp;
if((dp = opendir(dir.c_str())) == NULL) {
cout << "Error(" << errno << ") opening " << dir << endl;
return errno;
}
while ((dirp = readdir(dp)) != NULL) {
files.push_back(string(dirp->d_name));
}
closedir(dp);
return 0;
}
此后,所有文件都将保存在vector<string> files
中。您可以查看here了解详情。
P.S。要实现一对多匹配,我认为您需要循环这些文件并根据简单的一对一匹配进行比较,然后选择最佳匹配。