在平时的工作中,会遇到以下这种情况。当我们的需求是处理一批图片,而不仅仅是一张图片。这时候,我们可以利用python来批量处理大量的图片集,提高工作效率。
批量读取图片下面展示的是我的电脑路径下的Image文件夹里的内容:
1.从当前目录Image文件夹里,读取后缀名为.jpg格式的图片
for files in glob.glob(r'Image*.jpg'):
imgsrc = cv.imread(files)
2.读取当前Image文件夹中的所有文件:
#自定义一个路径函数read_path(),用来读取文件夹里全部内容
def read_path():
#文件夹目录
path = './Image'
#得到文件夹下所有文件的名称
files = os.listdir(path)
#遍历文件夹
for file in files: #或者这样写循环 for file in os.listdir(path):
print(file)
print('读取文件结束')
if __name__ == '__main__':
read_path()
完整代码
下面介绍的这部分,包括:
如何来批量读取一个文件中的图片pichuli( )
如何读取文件夹下的所有文件read_path( )
# -*- coding: utf-8 -*-
# @Time : 2022/7/28 9:25
import cv2 as cv
import glob
import os
# import numpy as np
#图像批处理过程
def pichuli():
nums = 1
#遍历文件夹下的所有图片,采用相对路径查找
for file in glob.glob(r'Image*.jpg'):
imgsrc = cv.imread(file)
# 输出路径
opfile = r'pichuli_picspcl_pics'
# 判断opfile是否存在,不存在则创建
#if (os.path.isdir(opfile) == False):
#os.mkdir(opfile)
image_path = opfile + '('+str(nums)+')'+'.jpg'
cv.imwrite(image_path, imgsrc)
nums += 1
print('批处理结束')
#自定义一个路径函数read_path(),用来读取文件夹里全部内容
def read_path():
#文件夹目录
path = './Image'
#得到文件夹下所有文件的名称
files = os.listdir(path)
#遍历文件夹
for file in files: #或者这样写循环 for file in os.listdir(path):
print(file)
print('读取文件结束')
if __name__ == '__main__':
pichuli()
read_path()



