def old_get_perspective_transform_normalized(p1,p2):
"""
A small wrapper around cv2.getPerspectiveTransform, with normalization of
point locations.
"""
return cv2.getPerspectiveTransform(p1,p2)
mu1 = p1.mean(axis=0)
std1 = p1.std(axis=0)
mu2 = p2.mean(axis=0)
std2 = p2.std(axis=0)
p1_ = (p1 - mu1) / std1
p2_ = (p2 - mu2) / std2
H_ = cv2.getPerspectiveTransform(p1_,p2_)
A1 = np.array([[1.0/std1[0], 0.0, -mu1[0]/std1[0]],
[0, 1.0/std1[1], -mu1[1]/std1[1]],
[0,0,1.0]])
A2inv = np.array([[std2[0], 0.0, mu2[0]],
[0, std2[1], mu2[1]],
[0,0,1.0]])
H = A2inv.dot(H_).dot(A1)
return H
评论列表
文章目录