Python中把图片从矩形处理成正方形
在训练神经网络时,数据集中有的图片是矩形的,但是要求是正方形的,所以要对图片进行处理,如果直接缩放成正方形,会改变宽和高的比例,导致失真。
这里用的方法:把图片粘贴到一张正方形图片上,然后再缩放。
from PIL import Image
image=Image.open("1.jpg")
image = image.convert('RGB')
w, h = image.size
background = Image.new('RGB', size=(max(w, h), max(w, h)), color=(127, 127, 127)) # 创建背景图,颜色值为127
length = int(abs(w - h) // 2) # 一侧需要填充的长度
box = (length, 0) if w < h else (0, length) # 粘贴的位置
background.paste(image, box)
image_data=background.resize((256,256))#缩放
background.show()