使用opencv的warpAffine转换一下图片尺寸,应该好用
def resize_image(img, dist_size):
image_h, image_w = img.shape[:2]
dist_h, dist_w = dist_size
scale = min((dist_h / image_h), (dist_w / image_w))
ox = (-scale * img.shape[1] + dist_w) / 2
oy = (-scale * img.shape[0] + dist_w) / 2
M = np.array([
[scale, 0, ox],
[0, scale, oy]
], dtype=np.float32)
dist_image = cv.warpAffine(img, M, dsize=[dist_h, dist_w], flags=cv.INTER_LINEAR,
borderMode=cv.BORDER_CONSTANT, borderValue=(126, 126, 126))
IM = cv.invertAffineTransform(M)
return dist_image, IM