© Fu Xianjun. All Rights Reserved.
代码如下:
import cv2
import numpy as np
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
def order_points(pts):
rect = np.zeros((4,2),dtype="float32")
s = pts.sum(axis=1)
rect[0]=pts[np.argmin(s)]
rect[2]=pts[np.argmax(s)]
d = np.diff(pts,axis=1)
rect[1]=pts[np.argmin(d)]
rect[3]=pts[np.argmax(d)]
return rect
def four_point_transform(image,pts):
rect = order_points(pts)
(tl,tr,br,bl)=rect
widthA = np.sqrt((br[0]-bl[0])**2+(br[1]-bl[1])**2)
widthB = np.sqrt((tr[0]-tl[0])**2+(tr[1]-tl[1])**2)
maxWidth = max(int(widthA),int(widthB))
heightA = np.sqrt((tr[0]-br[0])**2+(tr[1]-br[1])**2)