0
我正在進行靜脈模式識別項目。我已經完成了與SURF探測器匹配的一對一,它只需提供文件名即可正常工作。現在,有沒有辦法,我可以做一對多的比較,並打開最大匹配圖像的圖像?像輸入一個文件名並與目錄中的圖像進行比較?有一些內置的函數可以用於遍歷圖像目錄嗎?如何做在opencv中一對多的圖像匹配?
我正在C++,Ubuntu 12.04LTS,Opencv中工作。
任何幫助深表感謝。
我正在進行靜脈模式識別項目。我已經完成了與SURF探測器匹配的一對一,它只需提供文件名即可正常工作。現在,有沒有辦法,我可以做一對多的比較,並打開最大匹配圖像的圖像?像輸入一個文件名並與目錄中的圖像進行比較?有一些內置的函數可以用於遍歷圖像目錄嗎?如何做在opencv中一對多的圖像匹配?
我正在C++,Ubuntu 12.04LTS,Opencv中工作。
任何幫助深表感謝。
您可以使用以下功能獲取給定文件夾內的所有文件。
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.要實現一對多的匹配,我認爲你需要循環這些文件,並根據簡單的一對一匹配進行比較,然後選擇最佳匹配。
工作。我試圖循環的文件,但得到一個分段錯誤。 –
@ user2079542您可以發佈您的代碼,以便我們可以找到該錯誤。或者更好地將其作爲另一個SO問題發佈。 :P – herohuyongtao
這是一個愚蠢的錯誤,沒有爲圖像分配內存。我想到了。非常感謝。 –