OpenCV两种方法批量读取文件夹下面的图像(万能模板,C++批量读取文件夹下的图片)

测试平台

Windows10,64位
VS2019
OpenCV3.5

文件夹下图片有序时,OpenCV读取方法

对于文件夹下面的每张图片都是序号.bmp格式 的图像时可以使用如下方法按顺序读取。在这里插入图片描述

#include<stdio.h>
#include "opencv2/opencv.hpp"
#include <opencv2\highgui\highgui.hpp>
#include<string>
#include<iostream>
using namespace cv;
using namespace std;
void main(){
char fileName[500];
 Mat pic;
 for (int i = 0; i < 110; i++) {//文件夹下面一共有110张图片
  printf("start deal:%d\n", i + 1);
  sprintf_s(fileName, ".//picture//%d.bmp", i);//提取出文价夹下面的每张图片路径,放到fileName
  pic = imread(fileName);//读取fileName路径下面的图片
  imshow("tpian", pic);//显示图像
  waitKey(1000);//显示延时
 }
 pic.release();//将Mat释放
}

当文件夹的图片名称没有规律或者有规律时(通用方法,万能模板)

#include<stdio.h>
#include "opencv2/opencv.hpp"
#include <opencv2\highgui\highgui.hpp>
#include<string>
#include<vector>
#include<iostream>
using namespace cv;
using namespace std;
void main(){
String path = ".//picture";//文件夹路径
 vector<String>src_test;
 glob(path, src_test, false);//将文件夹路径下的所有图片路径保存到src_test中
 if (src_test.size() == 0) {//判断文件夹里面是否有图片
  printf("error!!!\n");
  exit(1);
 }
 for(int i=0;i< src_test.size();i++){//依照顺序读取问价下面的每张图片,并显示
 Mat image = imread(src_test[i]);
 imshow("image", image);
  waitKey(1000);
  image.release();//将Mat释放
 }
}

两种方法的比较

第一种方法会按照问价夹下面图片的顺序进行读取,而第二种方法读取文价夹下面的图片时不是严格按照图片顺序进行读取的,读取顺序是乱的。大家可以尝试一下~欢迎留言讨论

  • 9
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值