美文网首页
仿射变换公式推导

仿射变换公式推导

作者: 寻松点点 | 来源:发表于2020-03-23 13:29 被阅读0次

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)式
\left [ \begin{array}{ccc} affine\_Matrix=first_M^{-1} \times second_M \end{array} \right]
输入至少4个点在两个不同坐标下的坐标,计算6个变换参数(A~F)。

比如一个点P在x-o-y坐标框架下的位置信息为P_{xoy}(x,y);在另一个X-O-Y坐标框架下的位置信息为P_{XOY}(X,Y)。

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

二、GIS使用背景

Screenshot_20200323-121147.jpg

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

利用仿射变换公式:

X=Ax+By+C\\ Y=Dx+Ey+F

可将点P_{xoy}(x,y)转换到P_{XOY}(X,Y)。

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

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

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

当n=4,即输入为4个控制点时候,有16个数据项。
点1:\quad X_{1}=Ax_{1}+By_{1}+C\quad | \quad Y_{1}=Dx_{1}+Ey_{1}+F
点2:\quad X_{2}=Ax_{2}+By_{2}+C\quad | \quad Y_{2}=Dx_{2}+Ey_{2}+F
点3:\quad X_{3}=Ax_{3}+By_{3}+C\quad | \quad Y_{3}=Dx_{3}+Ey_{3}+F
点4:\quad X_{4}=Ax_{4}+By_{4}+C\quad | \quad Y_{4}=Dx_{4}+Ey_{4}+F
\cdots


\sum{X}=A\sum{x}+B\sum{y}+n\cdot C \quad |\quad \sum{Y}=D\sum{x}+E\sum{y}+n\cdot F\quad (1-2)式

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

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

六个未知数,两个方程,这种情况是求不出未知数的。所以至少再需要4个方程。
点1:\quad x_{1}X_{1}=Ax_{1}^2+Bx_{1}y_{1}+Cx_{1}\quad | \quad x_{1}Y_{1}=Dx_{1}^2+Ex_{1}y_{1}+Fx_{1}
点2:\quad x_{2}X_{2}=Ax_{2}^2+Bx_{2}y_{2}+Cx_{2}\quad | \quad x_{2}Y_{2}=Dx_{2}^2+Ex_{2}y_{2}+Fx_{2}
点3:\quad x_{3}X_{3}=Ax_{3}^2+Bx_{3}y_{3}+Cx_{3}\quad | \quad x_{3}Y_{3}=Dx_{3}^2+Ex_{3}y_{3}+Fx_{3}
点4:\quad x_{4}X_{4}=Ax_{4}^2+Bx_{4}y_{4}+Cx_{4}\quad | \quad x_{4}Y_{4}=Dx_{4}^2+Ex_{4}y_{4}+Fx_{4}


\sum{xX}=C\sum{x}+A\sum{x^2}+B\sum{xy}\quad | \quad \sum{xY}=F\sum{x}+D\sum{x^2}+E\sum{xy}\quad (1-3)式

同理,又可得:
\sum{yX}=C\sum{y}+B\sum{y^2}+A\sum{xy}\quad |\quad \sum{yY}=F\sum{y}+E\sum{y^2}+D\sum{xy}\quad (1-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


功能实现

C=A \times B

get A

A=\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 2 3 4 5 6
n sum_x sum_y sum_xx sum_yy sum_xy

Reference:

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

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

相关文章

网友评论

      本文标题:仿射变换公式推导

      本文链接:https://www.haomeiwen.com/subject/mocwyhtx.html