opencv中可以用于批量处理文件名的函数:sprintf
官方介绍:
http://www.cplusplus.com/reference/cstdio/sprintf/
自己试验的例子:
//提取sift特征点
#include <opencv2\opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/nonfree/features2d.hpp>
using namespace std;
using namespace cv;
int main(int argc, const char* argv[])
{
char filename[100];
sprintf(filename, "glass_tiles_ms_0%d.png", 1);
//const cv::Mat input = cv::imread("glass_tiles_ms_01.png", 0); //Load as grayscale
const cv::Mat input = cv::imread(filename, 0); //Load as grayscale
cv::SiftFeatureDetector detector;
std::vector<cv::KeyPoint> keypoints;
detector.detect(input, keypoints);
// Add results to image and save.
cv::Mat output;
cv::drawKeypoints(input, keypoints, output, Scalar(255, 255, 255), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
cv::imwrite("sift_result.jpg", output);
cv::imshow("原图", input);
cv::imshow("sift结果", output);
cvWaitKey(0);
return 0;
}