https://blog.csdn.net/hudaliquan/article/details/52121832

网上有很多关于单应性矩阵的求解方法,但都没有说明怎样用四点求解单应性矩阵或者源码详细说明很少。这里说说自己的理解。

首先贴出matlab代码

 
  1. % 返回值 H 是一个3*3的矩阵

  2. % pts1 和 pts2是2*4的坐标矩阵对应特征点的(x,y)坐标

  3. n = size(pts1,2);

  4. A = zeros(2*n,9);

  5. A(1:2:2*n,1:2) = pts1';

  6. A(1:2:2*n,3) = 1;

  7. A(2:2:2*n,4:5) = pts1';

  8. A(2:2:2*n,6) = 1;

  9. x1 = pts1(1,:)';

  10. y1 = pts1(2,:)';

  11. x2 = pts2(1,:)';

  12. y2 = pts2(2,:)';

  13. A(1:2:2*n,7) = -x2.*x1;

  14. A(2:2:2*n,7) = -y2.*x1;

  15. A(1:2:2*n,8) = -x2.*y1;

  16. A(2:2:2*n,8) = -y2.*y1;

  17. A(1:2:2*n,9) = -x2;

  18. A(2:2:2*n,9) = -y2;

  19. [evec,~] = eig(A'*A);

  20. H = reshape(evec(:,1),[3,3])';

  21. 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相关推荐

  1. 计算机视觉学习笔记(四)homography 单应性矩阵的理解及求解

    单应性矩阵的理解及求解 1. 齐次坐标(Homogeneous Coordinate) 一幅2D图像上的非齐次坐标为(x,y),而齐次坐标为(x,y,1),也可以写成(x/z,y/z,1)或(x,y, ...

  2. 单应性矩阵的理解及求解3

    http://www.sohu.com/a/223594989_100007727 前面文章<从零开始学习「张氏相机标定法」(一)成像几何模型>中我们已经得到了像素坐标系和世界坐标系下的坐 ...

  3. 单应性矩阵的理解及求解1

    https://blog.csdn.net/zinnc/article/details/52319491 尽量写的通俗一点,因为从某种程度上讲,本人也是dummy..... 1. 先说homogene ...

  4. 关于单应性矩阵的理解:Homography matrix for dummies

    尽量写的通俗一点,因为从某种程度上讲,本人也是dummy..... 1. 先说homogeneous coordinate,齐次坐标 一幅2D图像上的非齐次坐标为(x,y),而齐次坐标为(x,y,1) ...

  5. OpenCV-C++实现单应性矩阵的求解

    1. 单应性矩阵的理解 1.1 图像层面 单应性矩阵(Homography)约束了同一3D空间点在两个像素平面的2D齐次坐标. 单应性矩阵具有8个自由度,已知A和B两张图像上的四对点,即可列出八个方程 ...

  6. 齐次坐标和单应性矩阵

    齐次坐标主要是应用在矩阵转换中,我们通常运算的坐标系是"笛卡尔坐标系",我们已经习惯了笛卡尔坐标系的表述方式,一个点都有唯一对应的数据值来表示,比如原点我们就记做(0,0)点.而笛 ...

  7. Homography单应性矩阵程序实现

    单应性矩阵重要应用在求解两幅图像的映射关系,或者图像坐标与世界坐标的映射关系. 这里主要在张正有相机标定法的基础上,求解H. 具体理论为请点:相机标定法-张正有 Opencv程序实现 std::vec ...

  8. 单应性矩阵的相关理解

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zinnc/article/details/52319491 尽量写的通俗一点,因为从某种程度上讲,本 ...

  9. 单应性矩阵 matlab,四点求解单应性矩阵

    网上有很多关于单应性矩阵的求解方法,但都没有说明怎样用四点求解单应性矩阵或者源码详细说明很少.这里说说自己的理解. 首先贴出matlab代码 % 返回值 H 是一个3*3的矩阵 % pts1 和 pt ...

最新文章

  1. R主成分分析PCA示例
  2. 大家都在讨论裁员,我只想聊聊成长 !
  3. 线性代数学习笔记(几何版)
  4. python ssh登录设备_用Python怎么SSH到网络设备
  5. 停车场计费算法 php,停车场收费算法,思路卡住了求补完!该如何处理
  6. 交换机和pc机用什么线连接_为什么要用顶角线,用发光顶角线的好处有哪些?...
  7. CF848C Goodbye Souvenir
  8. 设置zookeeper开机自启动
  9. 多线程的那点儿事(之自旋锁)
  10. win11中gpedit.msc找不到文件怎么办 windows11gepdit.msc找不到文件的解决方法
  11. 二:SpringMVC知识整理
  12. GCC 的编译配置文件(Spec File)
  13. 检测点是否在两条平行线段之间_两点距离、点到直线距离、两条直线平行与垂直的判定...
  14. 车辆故障码api DTC查询
  15. 莫烦 python教程学习笔记————搭建自己的神经网络
  16. Solidworks 课程大纲(虎课网)
  17. java写的小米商城_开发”小米商城官网首页”(静态页面)
  18. 统一身份认证系统方案
  19. 解读arduino读取模拟信号实例
  20. 概率论复习笔记(一)随机事件及其概率

热门文章

  1. Java实现swap交换函数的数组方法
  2. 2026年物联网将为运营商带来高收入
  3. Java开发工程师的一点职业发展规划
  4. 帆软决策系统后台中左上角的这个logo和名字如何修改?
  5. Scrum立会报告+燃尽图(Beta阶段第二次)
  6. 关键词(快排)刷词原理和方法
  7. 1375 灯泡开关 III
  8. ilog jrues规则开发流程
  9. selenium自动登录知网下载论文
  10. 解决高分辨率下安装Linux花屏问题