OpenCV 批量读取图片-规则下

又是在进行处理的时候需要批量读取图像,在图片名称规律的情况下还是挺简单的,在OpenCV中利用sprintf函数实现在窗口中连续读取同一文件夹下的连续图片-即规则下读取。
1 新建文件夹不要含中文
比如我在桌面上新建一个文件夹取名“PIAN”。
在这里插入图片描述
文件夹内的图片格式要统一这里我都选用.jpg格式,最后要有规律命名比如我用1234567循序
OpenCV 批量读取图片-规则下_第1张图片
2 输入代码

#include
#include
#include
using namespace std;
using namespace cv;
int main()

{
	//定义相关参数
	const int num =7;
	char fileName[50];
	char windowName[50];
	Mat srcImage;
	for (int i = 1; i <= num; i++){
		//sprintf读入指定路径下的图片序列
		sprintf(fileName,"C:\\Users\\JY\\Desktop\\PIAN\\%d.jpg", i);
		sprintf(windowName, "No%d", i);
		//按照图像文件名读取
		srcImage = imread(fileName);
		if (srcImage.empty()){
			cout << "read error" << endl;
			return 0;
		}
		namedWindow(windowName);
		imshow(windowName, srcImage);
		cout << "NO" << i << endl;
	}
	waitKey(0);
	system("pause");
	return 0;
}

因为我要读取7张图片所以 const int num =7;

关于读取路径路径不要包含中文以及一些花里胡哨的东西
右键文件夹打开属性
OpenCV 批量读取图片-规则下_第2张图片
注意要双反斜杠如下
sprintf(fileName,“C:\\Users\\JY\\Desktop\\PIAN\\%d.jpg”, i);

3 运行结果

收工

你可能感兴趣的:(OpenCV学习)