import os
import cv2
import numpy as np
defpadImg(img, input_w, input_h):
w =0
h =0
x =0
y =0
r_w = input_w / img.shape[1]
r_h = input_h / img.shape[0]if r_h > r_w:
w = input_w
h = r_w * img.shape[0]
x =0
y =(input_h - h)/2else:
w = r_h * img.shape[1]
h = input_h
x =(input_w - w)/2
y =0
w =int(w)
h =int(h)
x =int(x)
y =int(y)
re = cv2.resize(img,(w,h))
out = np.full((input_h, input_w,3),127, np.uint8)
out[y:y+h,x:x+w,:]= re
return out
if __name__ =="__main__":
img = cv2.imread("0.jpg")
a = padImg(img,300,512)
cv2.imshow("a",a)
cv2.waitKey(0)
cv2.destroyAllWindows()