SLAM:单应矩阵,本质矩阵,基本矩阵详解和对应的c++实现

单应矩阵(Homography Matrix)

单应矩阵(Homography Matrix)是计算机视觉中描述同一平面在不同视角下投影变换的核心工具,广泛应用于图像校正、拼接、虚拟广告牌替换等场景。以下从原理、求解方法和C++实现三方面展开详解:


一、单应矩阵的数学原理

  1. 定义与作用
    单应矩阵是3×3的齐次矩阵,满足关系:
    s ⋅ x ′ = H ⋅ x s \cdot \mathbf{x}' = \mathbf{H} \cdot \mathbf{x} sx=Hx
    其中, x \mathbf{x} x x ′ \mathbf{x}' x分别为同一平面点在不同图像中的齐次坐标,(s)为尺度因子。单应矩阵通过内参矩阵( K K K)、旋转矩阵( R R R)、平移向量( t t t)及平面法向量( n \mathbf{n} n)共同决定:
    H = K ⋅ ( R + t ⋅ n T d ) ⋅ K − 1 \mathbf{H} = K \cdot (R + \frac{t \cdot \mathbf{n}^T}{d}) \cdot K^{-1} H=K(R+dtnT)K1
    ((d)为平面到相机的距离)

  2. 关键特性

    • 自由度:8(因齐次坐标的尺度不变性,需归一化)。
    • 应用场景
      • 图像矫正(如银行卡正视图生成)
      • 相机标定(张氏标定法)
      • 增强现实(虚拟物体贴合平面)

二、单应矩阵的求解方法

1. 直接线性变换(DLT)

步骤

  1. 匹配点对:选取4对以上平面点(像素坐标),满足 x i ′ = H ⋅ x i \mathbf{x}'_i = \mathbf{H} \cdot \mathbf{x}_i xi=Hxi
  2. 构建方程:每对点生成2个方程,如:
    { x i ′ = h 11 x i + h 12 y i + h 13 h 31 x i + h 32 y i + h 33 y i ′ = h 21 x i + h 22 y i + h 23 h 31 x i + h 32 y i + h 33 \begin{cases} x'_i = \frac{h_{11}x_i + h_{12}y_i + h_{13}}{h_{31}x_i + h_{32}y_i + h_{33}} \\ y'_i = \frac{h_{21}x_i + h_{22}y_i + h_{23}}{h_{31}x_i + h_{32}y_i + h_{33}} \end{cases} { xi=h31xi+h32yi+h33h11xi+h12yi+h13yi=h31xi+h32yi+h33h21xi+h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xMathematics

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值