在图像输入到CNN之前需要对图像做一些预处理,如padding和翻转(flip),这是在平时开发中写的代码片段,总结一下。
- 图像扩展padding
将图像pad到固定大小,以白色填充
from PIL import Image
def pad_image(im):
w,h = im.size
if w>=h:
im_new = Image.new(mode='RGB', size=(w,w), color=0)
im_new.paste(im, box=(0, (w-h)//2))
else:
im_new = Image.new(mode='RGB', size=(h,h), color=0)
im_new.paste(im, box=((h-w)//2, 0))
im_new = im_new.resize((256,256))
return im_new
- 图像翻转flip
img_h = img.transpose(Image.FLIP_LEFT_RIGHT) # 水平翻转
img_v = img.transpose(Image.FLIP_TOP_BOTTOM) # 垂直翻转