如何使用opencv匹配模板为我的示例加载多个图像和一个模板我尝试在barca团队和阿根廷团队中查看messi,然后使用“./ MatchingTemplate barca.jpg messi.jpg “(我认为梅西)但如果我尝试”./ MatchingTemplate barca.jpg argentina.jpg messi.jpg“(它不起作用)
注意:我使用cpp在linux中执行(./MatchinngTemplate image1 image2 image3,... mytemplate)我使用MatchingTemplate的基本源代码:http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html
答案 0 :(得分:1)
如果要将方法(此处为matchTemplate
)应用于存储在目录中的多个图像,则应使用函数将此目录中每个图像的名称存储到向量中(即{{1} })并迭代它。
以下是使用std::vector<std::string>
的示例:
boost
然后您可以迭代int EnumerateFiles(const std::string& target_path, const std::string& ext, std::vector<std::string>& res){
boost::filesystem::directory_iterator end_itr: // default ctor yields past-the-end
for(boost::filesystem::directory_iterator i(target_path); i != end_itr; ++it){
// skip if not a file
if( !boost::filesystem::is_regular_file( i->status() ) ) continue;
// skip if no match with extension
if( i->path().extension() != ext.c_str() ) continue;
// file matches, store it
res.push_back(i->path().filename().c_str());
}
}
函数:
main