可以缩小,不能放大: 只需要4个点坐标就可以了。 # -*- coding: utf-8 -*- import os import numpy as np import cv2 list_path = r"E:\data\barcode\train\13_3_new\imgs" # list_path=r"E:\data\barcode\train\13_3_new\blur" g = os.walk(list_path) img_files = ['%s/%s' % (i[0], j) for i in g for j in i[-1] if j.endswith('jpg')] for img_path in img_files: img=cv2.imread(img_path) middle_len = 268 height,width=img.shape[:2] h_value1 = -30 w_value2 =30 pts1 = np.float32([[0, 0], [0, height], [width, height], [width, 0]]) # 变换后的四个角点 pts2 = np.float32([[0, 0], [0, height - h_value1], [width- w_value2, height - h_value1 ], [width- w