中企动力制作的网站后台,门户网站建设中存在的问题,wordpress安装提示数据库空,wordpress 小工具 音乐播放器透射变换是视角变化的结果#xff0c;是指利用透视中心#xff0c;像点#xff0c;目标点共线的条件#xff0c;按透视旋转定律使承影面(透视面)绕迹线(透视轴旋转某一角度#xff0c;破坏原有的投影光束#xff0c;仍能保持承影面上投影几何图形不变的变化) 它的本质将图…透射变换是视角变化的结果是指利用透视中心像点目标点共线的条件按透视旋转定律使承影面(透视面)绕迹线(透视轴旋转某一角度破坏原有的投影光束仍能保持承影面上投影几何图形不变的变化) 它的本质将图像投影到一个新的视平面其通用变换公式为 其中(u,v)是原始图像像素坐标w取值为1(xx/z,yy/z)是透射变换后的结果。后面的矩阵称为透视变换矩阵一般情况下我们将其分为三部分如下图 T1(a00,a01,a10,a11)表示对图像进行线性代换T2(a02,a12)对图像进行平移T3对图像进行透射变换a22一般设为1
透射变换所需矩阵为3*3的矩阵矩阵的最后一个数固定为1所有需要求解这个矩阵的8个方程而一个点(x,y)可以构建两个方程所以共需要原图像4个点以及透射变换后对应4个点即可
opencv中通过函数cv2.getPerspectiveTransform找到变换矩阵将cv2.warpPerspective应用于此3x3变换矩阵
import numpy as np
import cv2
img cv2.imread(1.jpg)
rows,cols img.shape[:2]#获取图像长和宽
pts1 np.float32([[56,65],[368,52],[28,387],[389,390]])
pts2 np.float32([[100,145],[300,100],[80,290],[310,300]])
T cv2.getPerspectiveTransform(pts1, pts2)
dst cv2.warpPerspective(img, T, (cols,rows))
cv2.imshow(1.jpg, dst)
cv2.waitKey(0)
cv2.destroyAllWindows()