利用最小二乘法求解仿射变换参数
仿射变换的定义
仿射变换(Affine Transformation或 Affine Map),是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。
仿射变换可以由以下基本变换复合而成:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和错切(Shear),这些基本的变换如下图1表示:
图1
下图2中变换矩阵将原坐标(x, y)变换为新坐标(x', y')
图2
最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。
这是一个示例:某次实验得到了四个数据点 :(图3红色的点)。我们希望找出一条和这四个点最匹配的直线 ,即找出在某种“最佳情况”下能够大致符合如下超定线性方程组的 和 :
图3
最小二乘法采用的手段是尽量使得等号两边的方差最小,也就是找出这个函数的最小值:
如此就得到了一个只有两个未知数的方程组,很容易就可以解出:
仿射变换最小二乘法
景物在成像过程中产生的扭曲,会使图像的比例失调,可用仿射变换来校正各种畸变。而仿射变换的参数可以用最小二乘法进行估算。
设原图像为f(x,y),畸变后的图像为F(X',Y'),要将F(X',Y')恢复为f(x,y),就是要找到(X',Y')坐标与(x,y)坐标的转换关系,这个转换关系称为坐标变换,表示为(x,y)=T(X',Y')。
景物在成像过程中产生的扭曲,会使图像的比例失调,可用仿射变换来校正各种畸变。先计算出坐标变换的系数,仿射变换的表达式为:R(x)=Px+Q, x=(x,y)是像素的平面位置,P是2*2的旋转矩阵,Q是2*1的平移向量,P、Q即为仿射变换参数,即:
x= AX' + BY' + C
y= DX' + EY' + F
因此,几何畸变的校正归根结底为坐标转换系数A,B,C,D,E,F的求解。
为了防止出现空像素,一般采用反向映射,由最小二乘法得(matlab):
vec1 = inv([X Y I]'*[X Y I])*[X Y I]'*U;
vec2 = inv([X Y I]'*[X Y I])*[X Y I]'*V;
其中vec1=[A B C]'; vec2 =[D E F]'; X Y U V I分别是x,y,X', Y', 1构成的向量。
最小二乘法估计就是估计原始坐标点与经过变换后的坐标点之间的关系,从通过这种关系进行矫正图像,大体步骤如下:
应用
对于处理图形畸变上,最小二乘仿射变换可以通过处理畸变的图形,还原图像原始形状。
另外,在测绘方面,最小二乘与仿射变换有着巨大的应用价值。文献7给出了一种不同坐标系统间转换的方法,在不同的地图坐标系中,使用最小二乘与仿射变换求取变换矩阵,完成坐标系间的转换。文献8则是研究地图数字化扫描的问题,使用最小二乘与仿射变换解决因分辨率、扫描设备带来的地图扫描不精确的问题。
参考资料
[1] 百度百科.仿射变换. http://baike.baidu.com/view/954621.htm 2013.09.17
[2] wiki百科.仿射变换.http://zh.wikipedia.org/wiki/仿射变换 2014.09.13
[3] ChenLee_1.仿射变换.http://blog.csdn.net/carson2005/article/details/7540936 2012.05.07
[4] wiki百科.最小二乘法. http://zh.wikipedia.org/wiki/最小二乘法 2014.11.11
[5] 百度百科.超定线性. http://baike.baidu.com/view/5113042.htm 2011.01.20
[6] fengbingchun.在图像变换中用最小二乘法求解仿射变换参. http://blog.csdn.net/fengbingchun/article/details/5969193 2010.10.27
[7] 孔建, 姚宜斌, 许双安. 整体最小二乘求取坐标转换参数[J]. 大地测量与地球动力学, 2010, (3).
[8] 岳东杰, 梅红. 地图扫描矢量化误差的最小二乘配置法处理研究[J]. 测绘科学, 2007, (2):51-53.
利用最小二乘法求解仿射变换参数相关推荐
- 在图像变换中用最小二乘法求解仿射变换参数
设原图像为f(x,y),畸变后的图像为F(X',Y'),要将F(X',Y')恢复为f(x,y),就是要找到(X',Y')坐标与(x,y)坐标的转换关系,这个转换关系称为坐标变换,表示为(x,y)=T( ...
- python 进行一元线性回归并输出相关结果_荐一元线性回归利用最小二乘法求解原理代码及案例...
1.线性回归的原理 基础定义 线性回归是利用数理统计中的回归分析,来确定两种或两种以上属性间相互依赖的定量关系的一种统计分析方法.举个例子,一套房子的具有面积.卧室数量.卫生间数量等三个属性,该房子的 ...
- 一元线性回归利用最小二乘法求解原理代码及案例
目录 1.线性回归的原理 基础定义 公式推导 简单理解 2.最小二乘法PYTHON实现 0. 导入相关库 1. 导入数据 2. 定义损失函数 3. 定义算法拟合函数 4. 测试定义的函数 5. 画出拟 ...
- 利用坐标数据求解七参数
根据四组数据求解它们的七参数,并且求解出每个参数的中误差,最后用其中的任意一个数据求得它对应的坐标数据,来验证我们的求解结果.数据以文件的形式将数据输入.代码中有详细的注释. 具体代码如下: 数据如下 ...
- 在两幅图像之间获得正确(最小二乘意义)仿射变换参数affine points via least square method
我有两个想要计算仿射运动模型参数的图像.我使用的模型是$$ x'= a_1x + a_2y + a_3 $$ $$ y'= a_4x + a_5y + a_6 $$为了计算这6个参数,我在两个图像之间 ...
- 基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比
基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比目录 一.梯度下降算法的基本原理 1.梯度下降算法的基本原理 二.题 ...
- 利用Matlab拟合时序植被生长季曲线,并求解物候参数
研究表明,一元六次曲线比一元二次曲线更好地模拟植被生长季的整个生长周期,表征植被的生长特性.matlab软件功能强大,在遥感模型研究方面有很大的优势特点,对数学模型模拟轻而易举,也可直接对栅格数据进行 ...
- 2021-04-24 Python 最小二乘法求解线性回归模型
Python 最小二乘法求解线性回归模型 机器学习线性回归模型 线性回归(linear regression)是一种线性模型,它假设输入变量 x 和单个输出变量 y 之间存在线性关系 具体来说,利用线 ...
- matlab最小二乘法拟合参数,matlab最小二乘法的非线性参数拟合
matlab最小二乘法的非线性参数拟合 首先说一下匿名函数:在创建匿名函数时,Matlab记录了关于函数的信息,当使用句柄调用该函数的时候,Matlab不再进行搜索,而是立即执行该函数,极大提高了效率 ...
最新文章
- java三大集合_java中三大集合框架
- leetcode算法题--最多的不重叠子字符串★★
- 前端学习(2386):远程仓库的issue
- C程序中main函数参数调用[个人学习简记]
- java cfg_如何使用antlr生成Java CFG(控制流图)?
- python calendar.isleap_Python calendar isleap()用法及代碼示例
- c语言指针测试代码,一个关于C语言指针的测试
- LaTex 表格的单元格划横线,分成两部分
- 超级账本HyperLedger的Fabric-CA的使用(两个组织一个Orderer三个Peer),带视频演示
- [算法·思想]囚徒困境中Tit For Tat策略为什么就是最好的,之JAVA代码模拟实现
- iOS开发细碎知识点总结二
- html5 dreamlive,DREAM LIVE 5th Tour Stargazer即将开演
- php面试题5---php面试题系列
- CSS3 animation-fill-mode 属性
- OJ刷题---鸡兔同笼问题
- 少儿编程Scratch学习教程3--帮助中心
- 【缺陷检测】基于matlab AlexNet和SVM异常螺母检测【含Matlab源码 2147期】
- 【服务器】XShell 使用汇总
- Cobalt Strike使用详解
- angularJS 组件及内置过滤器