(十四)透视变换

透视变换(Perspective Transformation)

一 图像变换与平面坐标系的关系

1、旋转:

(十四)透视变换_第1张图片

2、平移:

(十四)透视变换_第2张图片(十四)透视变换_第3张图片

3、刚体变换

(十四)透视变换_第4张图片

4、仿射变换

(十四)透视变换_第5张图片
在这里插入图片描述(十四)透视变换_第6张图片

5、投影变换(单应性变换)

(十四)透视变换_第7张图片

6 总结一下:

1、刚体变换:平移+旋转,只改变物体位置,不改变物体形状
2、仿射变换:改变物体位置和形状,但是保持“平直性”
3、投影变换:彻底改变物体位置和形状

(十四)透视变换_第8张图片

7、变换矩阵的物理意义

(十四)透视变换_第9张图片

二 、单应性变换

(十四)透视变换_第10张图片(十四)透视变换_第11张图片
(十四)透视变换_第12张图片(十四)透视变换_第13张图片(十四)透视变换_第14张图片

三、平面坐标系与齐次坐标系

齐次坐标到底是什么?
(十四)透视变换_第15张图片

一、透视变换理解

一、定义

透视变换(Perspective Transformation)的本质是将图像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。
(十四)透视变换_第16张图片
(十四)透视变换_第17张图片

二、透视变换的变换矩阵计算

透视变换(Perspective Transformation)的本质是将图像投影到一个新的视平面,其通用变换公式为:
(十四)透视变换_第18张图片

x,y,z 为原始图像像素点的齐次坐标,(X’=X/Z,Y’=Y/Z,Z’ =Z/Z ) 为变换之后的图像像素点的齐次坐标。

即原始图像像素点的齐次坐标(x,y,z)对应得到变换后的图像像素点的齐次坐标(X’;Y’;Z’)其中Z’=1,则点(X’;Y’)就是原图像对应的像素点的二维平面坐标经过变换后的二维平面坐标:
(十四)透视变换_第19张图片

透视变换矩阵图解如下:
(十四)透视变换_第20张图片 其中
(十四)透视变换_第21张图片

原始图像像素点的齐次坐标(x,y,z)对应变换之后的图像像素点的齐次坐标(X;Y;Z)。将Z归一化后,得到归一化后的齐次坐标(X’;Y’;1),则其变换之后的图像像素点的齐次坐标(X;Y;Z)对应的二维平面坐标为(X’;Y’)
即当齐次坐标Z’=1,则点(X’;Y’)就是原图像对应的像素点的二维平面坐标经过变换后的二维平面坐标:
(十四)透视变换_第22张图片
一般地,我们令a33=1,展开上面公式,得到一个点的放射变换:

(十四)透视变换_第23张图片
在这个方程中,总共有8个未知数,因此我们可以找到4对8个点(每个两个对应,原平面上的点和其对应映射到新的视平面的点为一对)
列出方程。解出,参数a11 、a12、a13、a21、a22、a23、a31、a32。
假设这8个点为:
源点四个坐标分别为A:(x0,y0),(x1,y1),(x2,y2),(x3,y3)
目标点四个坐标分别为B:(X’0,Y’0),(X’1,Y’1),(X’2,Y’2),(X’3,Y’3)
则带入方程(写成矩阵形式)得:
(十四)透视变换_第24张图片

三、求解出变换矩阵后如何使用

一、使用方法

首先,我们假设变换好的图像为new_image 大小跟原图image一样大,然后我们遍历图像new_image行和列,即遍历new_image的每一个像素坐标(Y,X,1),然后利用变换矩阵warpMatrix计算该坐标在原图中的对应位置(y,x,1),将原图中该位置的像素值p(y,x,1)赋值到变换后的图new_image中的(Y,X,1)位置。超出原图像素坐标的点可以随意赋值,看个人喜欢。一般赋值为边缘像素值

二、求(y,x,1)坐标方法

1、手推公式法

(十四)透视变换_第25张图片

2、矩阵运算法

(十四)透视变换_第26张图片原图:

原图像的四个点
src = np.float32([[207, 151], [517, 285], [17, 601], [343, 731]])
对应变换后的四个点
dst = np.float32([[0, 0], [337, 0], [0, 488], [337, 488]])
变换矩阵
[[ 8.92263779e-01 3.76733596e-01 -2.41585375e+02]
[-4.08140258e-01 9.44205073e-01 -5.80899328e+01]
[-8.53836442e-05 5.16464182e-05 1.00000000e+00]]
变换后的图
(十四)透视变换_第27张图片

求解出的变换矩阵就可以将一个正方形变换到四边形。反之,四边形变换到正方形也是一样的。于是,我们通过两次变换:四边形变换到正方形+正方形变换到四边形就可以将任意一个四边形变换到另一个四边形。

(十四)透视变换_第28张图片
因此,给定透视变换对应的四对像素点坐标,即可求得透视变换矩阵;反之,给定透视变换矩阵,即可对图像或像素点坐标完成透视变换,如下图所示:
(十四)透视变换_第29张图片
https://blog.csdn.net/xiaowei_cqu/article/details/26471527
https://blog.csdn.net/u010925447/article/details/77947398?utm_source=blogxgwz6
https://zhuanlan.zhihu.com/p/74597564

你可能感兴趣的:(数字图像处理入门,计算机视觉)