opencv2+ glob循环读入图片,将文件夹中的图片统一格式

方法1:利用glob模块批量读入图片是最合适的。

import glob
import cv2
import numpy as np
b= glob.glob(r"D:/pictureSim2/*")  #得到的b是一个文件名称的列表
print(b)
#['D:/pictureSim2\\1.1.png', 'D:/pictureSim2\\1.jpg', 'D:/pictureSim2\\10.1.jpeg', 'D:/pictureSim2\\10.2.jpg']

for i in range(len(b)):
    img = cv2.imread(b[i],0)
    cv2.imwrite('D:/pictureSim3/%d.jpg'%i,img)

方法2:使用os模块

import os
path = r"D:/pictureSim2"  #文件和目录名
names = os.listdir(path)   #返回指定目录下的所有文件名称
print(names)
#文件名称的列表
#['1.1.png', '1.jpg', '10.1.jpeg', '10.2.jpg']
image_paths = []   
for name in names:
    image_path = os.path.join(path, name)  ##连接目录与文件名或目录 结果为path/name
    image_paths += [image_path]
print(image_paths)
#['D:/pictureSim2\\1.1.png', 'D:/pictureSim2\\1.jpg', 'D:/pictureSim2\\10.1.jpeg', 'D:/pictureSim2\\10.2.jpg']

接下来就可以对图像文件进行处理了。有个缺点是返回了整个文件下的所有的文件,可能包括不是图像文件的其他文件,这样后面的图像处理可能会错。
可以简单的过滤一下。

方法3:也是使用os + glob模块

import numpy as np
import cv2
from os.path import dirname, join, basename
from glob import glob
num=0
print (dirname(__file__))  #当前工作路径
for fn in glob(join(dirname(__file__)+'\other', '*.jpg')):
    print fn
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值