It can be reduced , Can't zoom in :
It only needs 4 One point coordinates will do .
# -*- 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]])
# Four corners after transformation
pts2 = np.float32([[0, 0], [0, height - h_value1], [width- w_value2, height - h_value1 ], [width- w_value2, 0]]) # Important tests 1
# Generating perspective transformation matrix
M = cv2.getPerspectiveTransform(pts1, pts2)
# Do perspective transformation
dst = cv2.warpPerspective(img, M, (width, height))
cv2.imshow("sdf",dst)
cv2.imshow("img",img)
cv2.waitKey()