代码
将非正对角度拍摄的某个物体的图像变为正对物体的角度拍摄的图像,代码很简单
import cv2import numpy as npimg = cv2.imread('1.jpg') # 输入图像p_list = [] # 左上,右上,左下,右下顺序点击dst_point = (1000, 1000) # 变换目标大小img2 = img.copy()def capture_event(event, x, y, flags, params):if event == cv2.EVENT_LBUTTONDOWN:# create a circle at that position# of radius 30 and color greeencv2.circle(img, (x, y), 10, (0, 0, 255), -1)cv2.imshow("original_img", img)p_list.append([x, y])if len(p_list) == 4:pts1 = np.float32(p_list)pts2 = np.float32([[0, 0], [dst_point[0], 0], [0, dst_point[1]], [dst_point[0], dst_point[1]]])dst = cv2.warpPerspective(img2, cv2.getPerspectiveTransform(pts1, pts2), dst_point)cv2.namedWindow("result_img", cv2.WINDOW_NORMAL)cv2.imshow("result_img", dst)cv2.imwrite('2.jpg', dst) # 输出图像cv2.namedWindow("original_img", cv2.WINDOW_NORMAL)cv2.imshow("original_img", img)cv2.setMouseCallback("original_img", capture_event)cv2.waitKey(0)