图像处理的仿射变换和透视变换
其实一直也没理解“仿射”俩字是啥意思,但是大家都这么叫,其实仿射变换和透视变换更直观的叫法可以叫做“平面变换”和“空间变换”或者“二维坐标变换”和“三维坐标变换”。如果这么命名的话,其实很显然,这俩是一回事,只不过一个是二维坐标(x,y),一个是三维坐标(x,y,z)。也就是:
仿射变换:
透视变换:
从另一个角度也能说明三维变换和二维变换的意思,仿射变换的方程组有6个未知数,所以要求解就需要找到3组映射点,三个点刚好确定一个平面。透视变换的方程组有8个未知数,所以要求解就需要找到4组映射点,四个点就刚好确定了一个三维空间。
写个程序求解线性方程组相信不是什么难事。
解出方程组之后,就可以按照上面的方程,找到与结果图像上对应的源像素点。然后做插值。
看一下效果啊:
原图:
仿射变换之后:
透视变换之后: