平面诱导单应性矩阵

平面诱导单应性矩阵

用标准针孔模型,参考相机为 P1=K1[I∣0]P_1 = K_1[I\mid 0]P1=K1[I∣0],目标相机为 P2=K2[R∣t]P_2 = K_2[R\mid t]P2=K2[R∣t],平面方程在参考相机坐标系里是 N_c\^\\top X + d = 0

  • 像素到参考相机坐标:X=Z K1−1x1X = Z\,K_1^{-1} x_1X=ZK1−1x1,其中 x1=[u1,v1,1]⊤x_1 = [u_1,v_1,1]^\topx1=[u1,v1,1]⊤。

  • 把 XXX 代入平面方程,解出该点的深度:
    Nc⊤(ZK1−1x1)+d=0  ⇒  Z=−dNc⊤K1−1x1. N_c^\top (Z K_1^{-1} x_1) + d = 0 \;\Rightarrow\; Z = -\frac{d}{N_c^\top K_1^{-1} x_1}. Nc⊤(ZK1−1x1)+d=0⇒Z=−Nc⊤K1−1x1d.

    也即 X=−dNc⊤K1−1x1 K1−1x1X = -\dfrac{d}{N_c^\top K_1^{-1} x_1}\,K_1^{-1}x_1X=−Nc⊤K1−1x1dK1−1x1。

  • 投到目标相机:x2∼K2 (RX+t)x_2 \sim K_2\,(R X + t)x2∼K2(RX+t)。代入上面的 XXX:
    x2∼K2 ⁣(R(−dNc⊤K1−1x1K1−1x1)+t)=K2 ⁣(−dNc⊤K1−1x1RK1−1x1+t). x_2 \sim K_2\!\left(R \Bigl(-\frac{d}{N_c^\top K_1^{-1} x_1}K_1^{-1}x_1\Bigr) + t\right) = K_2\!\left(-\frac{d}{N_c^\top K_1^{-1} x_1} R K_1^{-1}x_1 + t\right). x2∼K2(R(−Nc⊤K1−1x1dK1−1x1)+t)=K2(−Nc⊤K1−1x1dRK1−1x1+t).

  • 提取分母并合并到矩阵右乘:
    x2∼K2(R−t Nc⊤d)K1−1x1. x_2 \sim K_2 \left(R - \frac{t\,N_c^\top}{d}\right) K_1^{-1} x_1. x2∼K2(R−dtNc⊤)K1−1x1.

    这就得到平面诱导单应矩阵
    H=K2(R−t Nc⊤d)K1−1, H = K_2 \left( R - \frac{t\,N_c^\top}{d} \right) K_1^{-1},H=K2(R−dtNc⊤)K1−1,

    使得x2∼Hx1x_2 \sim H x_1x2∼Hx1 (同一平面上对应点的像素齐次坐标)

相关推荐
CoderYanger1 小时前
A.每日一题——2435. 矩阵中和能被 K 整除的路径
开发语言·线性代数·算法·leetcode·矩阵·深度优先·1024程序员节
我的golang之路果然有问题2 小时前
word中latex插入矩阵的语法问题
笔记·学习·矩阵·word·latex·template method·分享
西猫雷婶2 小时前
CNN计算|原始矩阵扩充后的多维度卷积核计算效果
人工智能·pytorch·深度学习·神经网络·机器学习·矩阵·cnn
oscar9993 小时前
线性代数 第五章 矩阵的相似化简
线性代数·矩阵·相似化简
.格子衫.18 小时前
027动态规划之矩阵DP——算法备赛
算法·矩阵·动态规划
神仙别闹21 小时前
基于C++实现(控制台)应用二维矩阵完成矩阵运算
开发语言·c++·矩阵
兩尛21 小时前
矩阵中非1的数量 (2025B卷
线性代数·算法·矩阵
CoderYanger1 天前
递归、搜索与回溯-记忆化搜索:40.矩阵中的最长递增路径
java·线性代数·算法·leetcode·矩阵·1024程序员节
qq_430855881 天前
线性代数第一章第一课: 二阶三阶行列式
线性代数·算法·矩阵