- 目的:将宽1918,高1280的图像以最近的值,左右各填充一列,并缩小到宽960,高640
- 坑:PIL和numpy转换时,宽高会对调
import numpy as np
from PIL import Image
import os
src_dir='/home/lwd/data/carvana/train_hq'
srcs = os.listdir(src_dir)
print(len(srcs))
for i in srcs:
src_path = src_dir+'/'+i
src = np.asarray(Image.open(src_path))
tmp=np.zeros((1280,1920,3))
tmp[:,0,:]=src[:,0,:]
tmp[:,-1,:]=src[:,-1,:]
tmp[:,1:-1,:]=src
tmp = Image.fromarray(np.uint8(tmp)).resize((960, 640), resample=Image.BICUBIC)
tmp.save("/home/lwd/data/carvana/resize/src/"+i)
mask_dir='/home/lwd/data/carvana/train_masks'
masks = os.listdir(mask_dir)
print(len(masks))
for j in masks:
mask_path = mask_dir+'/'+j
mask = np.asarray(Image.open(mask_path))
temp=np.zeros((1280,1920))
temp[:,0]=mask[:,0]
temp[:,-1]=mask[:,-1]
temp[:,1:-1]=mask
temp = Image.fromarray(np.uint8(temp*255)).resize((960, 640), resample=Image.NEAREST)
temp.save("/home/lwd/data/carvana/resize/mask/"+j)