一、起因
需要自己编写一个图片分批处理函数,该函数完成的操作主要是两步,第一步,用某种方法从硬盘中读取图片;第二步,用某种方法分批处理这些文件。这里要说的,就是利用“某种方法从硬盘中读取图片”中的方法。
二、方法
- gloa方法,其思想是获取每张图片的路径信息,将其存入一个列表中,然后根据batchsize的大小对这个列表进行分组,每次包含batchsize个图片列表作为参数传到获取图片的函数中,在GetImage函数中,使用cv2.imread()方法遍历读取图片,将读取的图片放入到一个4维列表中(在tensorflow中是4维张量,我不知道在这说成4维列表是否恰当,勿怪),最后return这个列表。
gloa具体用法参考这里,实现代码如下:
from gloa import gloa
import cv2
import numpy as ny
get_image(image_paths,image_size):
X = np.zeros((len(images_paths), image_size, image_size,3),dtype = np.uint8)
i = 0
for img_path in image_paths:
img = cv2.imread(img_path)
img = cv2.cvtColor(img, COLOR_BGR2RGB)
img = cv2.resize(img,(image_size,image_size),interpolation=cv2.INTER_AREA)
X[i,:,:,:] = img