透视变换就是将一种坐标系变换成另一种坐标系,简单来说就是将一张”斜的”图片变正。
M = cv2.getPerspectiveTransform(crc,dst)
- 获取透视变化的变换矩阵,需要4个点,即图片的4个点
- 对于透视变换来说,M是一个3*3的矩阵
cv2.warpPerspective(img,M,(输出尺寸))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
""" @Project :Opencv学习 @File :仿真变换之透视变换.py @IDE :PyCharm @Author :咋 @Date :2023/1/13 19:05 """ import cv2 import numpy as np image = cv2.imread("Handsome.jpg") image = cv2.resize(image,(640,480)) src = np.float32([[200,100],[500,100],[200,300],[500,300]]) des = np.float32([[0,0],[500,500],[0,500],[500,500]]) M = cv2.getPerspectiveTransform(src,des)
warp_img = cv2.warpPerspective(image,M,dsize = (500,480)) cv2.imshow("rotate_img",np.hstack((image,warp_img))) cv2.waitKey(0) cv2.destroyAllWindows()
|

效果不好,右边都没显示图片,可能是对应点没有选好,代码能跑出来说明API的调用没有问题