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

来源:互联网 发布:朴宰范 私生活问题知乎 编辑:程序博客网 时间:2024/06/05 08:11

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

import globimport cv2import numpy as npb= 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 ospath = 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 npimport cv2from os.path import dirname, join, basenamefrom glob import globnum=0print (dirname(__file__))  #当前工作路径for fn in glob(join(dirname(__file__)+'\other', '*.jpg')):    print fn
阅读全文
0 0
原创粉丝点击