如何使用opencv匹配模板加载多个图像和一个模板

时间:2013-04-27 12:51:21

标签: c++ opencv

如何使用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

1 个答案:

答案 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