ディレクトリに保存されている複数の画像にメソッド (ここではmatchTemplate
) を適用する場合は、関数を使用して、このディレクトリ内のすべての画像の名前をベクトル (つまり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
次に、関数で反復できます。
for(size_t i=0; i<res.size(); ++i){
my_method(target_path+"/"+res.at(i), .. );
}