单应性矩阵的理解及求解4
https://blog.csdn.net/hudaliquan/article/details/52121832
网上有很多关于单应性矩阵的求解方法,但都没有说明怎样用四点求解单应性矩阵或者源码详细说明很少。这里说说自己的理解。
首先贴出matlab代码
% 返回值 H 是一个3*3的矩阵
% pts1 和 pts2是2*4的坐标矩阵对应特征点的(x,y)坐标
n = size(pts1,2);
A = zeros(2*n,9);
A(1:2:2*n,1:2) = pts1';
A(1:2:2*n,3) = 1;
A(2:2:2*n,4:5) = pts1';
A(2:2:2*n,6) = 1;
x1 = pts1(1,:)';
y1 = pts1(2,:)';
x2 = pts2(1,:)';
y2 = pts2(2,:)';
A(1:2:2*n,7) = -x2.*x1;
A(2:2:2*n,7) = -y2.*x1;
A(1:2:2*n,8) = -x2.*y1;
A(2:2:2*n,8) = -y2.*y1;
A(1:2:2*n,9) = -x2;
A(2:2:2*n,9) = -y2;
[evec,~] = eig(A'*A);
H = reshape(evec(:,1),[3,3])';
H = H/H(end); % make H(3,3) = 1
在齐次坐标中,假设一点p(xi,yi,1)经过H矩阵的变换变为p‘(xi',yi',1),即 p' = H*p,通常,对于透视变换,H矩阵有8个自由度,这样至少需要4对特征点对求解。4个特征点对可以建立8个方程。那么对于有n对特征点的情况(超定方程),解p' = H*p方程组可以转化为对齐次方程组Ax = 0 的求解。而对 Ax = 0 的求解转化为 min ||Ax||2 的非线性优化问题(超定方程,通过最小二乘拟合得到近似解)。
对于某一点(xi,yi),其变换可表述为 p' = H*p,代入展开可得:
(1)
那么可得:
(2)
进一步变换为:
(3)
这样便可构造系数矩阵:
(4)
通过系数矩阵我们可以构造出齐次线性方程组(Ax = 0):
(5)
即:
(6)
对于(6)这样的超定方程求解,可以通过最小二乘的方式求解。通过对系数矩阵A求取特征值和特征向量得到。通过以下方式获得最小二乘解:
[V,D] = eig(A'*A) (7)
其中D是特征值对角矩阵(特征值沿主对角线降序),V是对应D特征值的特征向量(列向量)组成的特征矩阵,A'表示A的转置。其最小二乘解为V(1),即系数矩阵A最小特征值对应的特征向量就是超定方程组Ax = 0的最小二乘解。
至此,H矩阵已经求取,后续可以通过随机采样一致性(RANSC)进行精选,或者通过LM进行优化。
单应性矩阵的理解及求解4相关推荐
- 计算机视觉学习笔记(四)homography 单应性矩阵的理解及求解
单应性矩阵的理解及求解 1. 齐次坐标(Homogeneous Coordinate) 一幅2D图像上的非齐次坐标为(x,y),而齐次坐标为(x,y,1),也可以写成(x/z,y/z,1)或(x,y, ...
- 单应性矩阵的理解及求解3
http://www.sohu.com/a/223594989_100007727 前面文章<从零开始学习「张氏相机标定法」(一)成像几何模型>中我们已经得到了像素坐标系和世界坐标系下的坐 ...
- 单应性矩阵的理解及求解1
https://blog.csdn.net/zinnc/article/details/52319491 尽量写的通俗一点,因为从某种程度上讲,本人也是dummy..... 1. 先说homogene ...
- 关于单应性矩阵的理解:Homography matrix for dummies
尽量写的通俗一点,因为从某种程度上讲,本人也是dummy..... 1. 先说homogeneous coordinate,齐次坐标 一幅2D图像上的非齐次坐标为(x,y),而齐次坐标为(x,y,1) ...
- OpenCV-C++实现单应性矩阵的求解
1. 单应性矩阵的理解 1.1 图像层面 单应性矩阵(Homography)约束了同一3D空间点在两个像素平面的2D齐次坐标. 单应性矩阵具有8个自由度,已知A和B两张图像上的四对点,即可列出八个方程 ...
- 齐次坐标和单应性矩阵
齐次坐标主要是应用在矩阵转换中,我们通常运算的坐标系是"笛卡尔坐标系",我们已经习惯了笛卡尔坐标系的表述方式,一个点都有唯一对应的数据值来表示,比如原点我们就记做(0,0)点.而笛 ...
- Homography单应性矩阵程序实现
单应性矩阵重要应用在求解两幅图像的映射关系,或者图像坐标与世界坐标的映射关系. 这里主要在张正有相机标定法的基础上,求解H. 具体理论为请点:相机标定法-张正有 Opencv程序实现 std::vec ...
- 单应性矩阵的相关理解
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zinnc/article/details/52319491 尽量写的通俗一点,因为从某种程度上讲,本 ...
- 单应性矩阵 matlab,四点求解单应性矩阵
网上有很多关于单应性矩阵的求解方法,但都没有说明怎样用四点求解单应性矩阵或者源码详细说明很少.这里说说自己的理解. 首先贴出matlab代码 % 返回值 H 是一个3*3的矩阵 % pts1 和 pt ...
最新文章
- R主成分分析PCA示例
- 大家都在讨论裁员,我只想聊聊成长 !
- 线性代数学习笔记(几何版)
- python ssh登录设备_用Python怎么SSH到网络设备
- 停车场计费算法 php,停车场收费算法,思路卡住了求补完!该如何处理
- 交换机和pc机用什么线连接_为什么要用顶角线,用发光顶角线的好处有哪些?...
- CF848C Goodbye Souvenir
- 设置zookeeper开机自启动
- 多线程的那点儿事(之自旋锁)
- win11中gpedit.msc找不到文件怎么办 windows11gepdit.msc找不到文件的解决方法
- 二:SpringMVC知识整理
- GCC 的编译配置文件(Spec File)
- 检测点是否在两条平行线段之间_两点距离、点到直线距离、两条直线平行与垂直的判定...
- 车辆故障码api DTC查询
- 莫烦 python教程学习笔记————搭建自己的神经网络
- Solidworks 课程大纲(虎课网)
- java写的小米商城_开发”小米商城官网首页”(静态页面)
- 统一身份认证系统方案
- 解读arduino读取模拟信号实例
- 概率论复习笔记(一)随机事件及其概率