仿射变换

  1. getAffineTransform(src, dst)

    该函数接受两个3x2的矩阵,表示源图片的三个点和对应目标图片的三个点

    用$X = \begin{bmatrix} x_0 \ y_0\ \end{bmatrix} $表示原始图片的一个点,$T = \begin{bmatrix} x \ y\ \end{bmatrix}$表示转换后的图片上对应的点,$M= \begin{bmatrix} a_{00} && a_{01} && b_{00} \ a_{10} && a_{11} && b_{10}\ \end{bmatrix}$表示转换矩阵,转换后的点由下式计算得到: $$x=a_{00}x_0+a_{01}y_0+b_{00}, y=a_{10}x_0+a_{11}y_0+b_{10}$$ —–公式1

    代入三个点,6个公式,6个未知数,解6元一次方程可以得到M

  2. cv2.warpAffine(image, trans_input, (inp_width, inp_height), flags=cv2.INTER_LINEAR), 该方法需要输入目标图像的大小

    由1得到M,针对原始图像上每一个像素点,都是用公式1映射到目标图像上,目标图像连续区域采用插值的方式解决小数问题,边缘外部的用黑色填充