仿射变换公式推导


title: 仿射变换
date: 2020/03/23 周一 11:58:40.00
tags: affine transformation
categories: GIS Algorithm
author:Tamkery


寻松点点Note:仿射变换公式推导

一、变换公式

$$
\left [ \begin{array}{cccc}
C &F \\
A &D  \\
B &E \\
\end{array}\right] =
\left [ \begin{array}{cccc}
n & \sum{x} & \sum{y}   \\
\sum{x} & \sum{x^2} & \sum{xy}   \\
\sum{y} & \sum{xy} & \sum{y^2}   \\
\end{array}\right]^{-1} \cdot
\left [ \begin{array}{cccc}
  \sum{X} & \sum{Y}   \\
 \sum{xX} & \sum{xY}   \\
 \sum{yX} & \sum{yY}   \\
\end{array}\right]\quad
$$

\left [ \begin{array}{cccc} C &F \\ A &D \\ B &E \\ \end{array}\right] = \left [ \begin{array}{cccc} n & \sum{x} & \sum{y} \\ \sum{x} & \sum{x^2} & \sum{xy} \\ \sum{y} & \sum{xy} & \sum{y^2} \\ \end{array}\right]^{-1} \cdot \left [ \begin{array}{cccc} \sum{X} & \sum{Y} \\ \sum{xX} & \sum{xY} \\ \sum{yX} & \sum{yY} \\ \end{array}\right]\quad
(1-1)式

输入至少4个点在两个不同坐标下的坐标,计算6个变换参数(A~F)。

比如一个点P在坐标框架下的位置信息为(x,y);在另一个坐标框架下的位置信息为(X,Y)。

那么同一个点在两个不同坐标框架下就可得两套位置信息的坐标: (x,y)和(X,Y)。

二、GIS使用背景

Screenshot_20200323-121147.jpg

图出自《GPS卫星导航基础:让-马利-佐格》

利用仿射变换公式:

可将点(x,y)转换到(X,Y)。

那么关于六参数矩阵的算法1-1式如何推导呢?

三、仿射变换六参数矩推导

输入至少4个点在两个不同坐标下的坐标,计算6个变换参数(A~F)。在这个条件下,n的最小值为4,那么就以4个控制点为基础开始公式的构建:

当n=4,即输入为4个控制点时候,有16个数据项。





把点数从4个推广到很多个,n个方程相加可得1-2式

注意:在1-2式中【x,y,X,Y】是点的坐标位置,也就是已经数据。公式中的未知变量其实是A到F六个字母。

六个未知数,两个方程,这种情况是求不出未知数的。所以至少再需要4个方程。




同理,又可得:

四、矩阵形态化

image-20200323131716665.png

(这个不想敲Latex了)

于是得到:
\left [ \begin{array}{cccc} C &F \\ A &D \\ B &E \\ \end{array}\right] = \left [ \begin{array}{cccc} n & \sum{x} & \sum{y} \\ \sum{x} & \sum{x^2} & \sum{xy} \\ \sum{y} & \sum{xy} & \sum{y^2} \\ \end{array}\right]^{-1} \cdot \left [ \begin{array}{cccc} \sum{X} & \sum{Y} \\ \sum{xX} & \sum{xY} \\ \sum{yX} & \sum{yY} \\ \end{array}\right]\quad


功能实现

get A

1 2 3 4 5 6
n sum_x sum_y sum_xx sum_yy sum_xy

Reference:

1.《地理信息系统导论》【美】kang-tsung Chang 第八版

2.《GPS卫星导航基础》【瑞士】让-马利-佐格

你可能感兴趣的:(仿射变换公式推导)