目前需要将小图填充为大图
这个是原图,大小为(127,175,3)。
原图大小不变的情况下,周围填充黑色为(200,200,3)的图片。
Python代码如下,np.pad起到了在数组中填充元素的作用。np.pad的参数解释:
constant_values=0:在需要填充的图像img边缘填充constant_values指定的数值
第一组参数((10,img_0-10),(10,img_1-10),(0,0))
(10,img_0-10):在img的第0个维度上,在img前面填充10个constant_values,在img后面填充img_0-10个constant_values
(10,img_1-10):在img的第1个维度上,在img前面填充10个constant_values,在img后面填充img_1-10个constant_values
(0,0):在img的第2个维度上,在img前面填充0个constant_values,在img后面填充0个constant_values,相当于不填充
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
imgpath='C:\\Users\Desktop\\1.jpg'
img=np.array(Image.open(imgpath) )
print(img.shape)
img_0=200-img.shape[0]#第0个维度填充到200需要的像素点个数
img_1=200-img.shape[1]#第1个维度填充到200需要的像素点个数
img_pad=np.pad(img,((10,img_0-10),(10,img_1-10),(0,0)),'constant', constant_values=0)
new_im = Image.fromarray(img_pad.astype(np.uint8))
new_im.show()