Points.append([x,y]) #添加点位坐标
cv2.namedWindow('img', cv2.WINDOW_AUTOSIZE)
cv2.setMouseCallback('img', on_mouse) #调用鼠标函数
while True:
cv2.imshow('img', img)
# 按 q 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
return np.float32(Points) #转为numpy数组格式,方便科学计算
def calculate_perspective_matrix(originPoints, targetPoints):
# 构建线性方程组 Ax = b
A = []
b = []
for i in range(4): #一共有四组点,依次赋值
x_origin, y_origin = originPoints[i]
x_target, y_target = targetPoints[i]
A.append([x_origin, y_origin, 1, 0, 0, 0, -x_targetx_origin, -x_targety_origin])
A.append([0, 0, 0, x_origin, y_origin, 1, -y_targetx_origin, -y_targety_origin])
b.append(x_target)
b.append(y_target)
A = np.array(A)
b = np.array(b)
'&#