\(\mathrm{x}_{i}\) 表示变化前的齐次坐标

\(\mathbf{x}_{i}^{\prime}\) 表示变化后的齐次坐标

我们需要求到一个 \(3\times3\) 的变换矩阵 \(\mathrm{H}\) , 使得

\[\mathbf{x}_{i}^{\prime} \times \mathrm{Hx}_{i}=\mathbf{0}
\]

令 \(\mathbf{h}^{j\top}\) 表示 \(\mathrm{H}\) 的第 \(j\) 行 , 即 \(\mathrm{H}=[~\mathbf{h}^{1\top};~ \mathbf{h}^{2\top}; ~ \mathbf{h}^{3\top}~]\)

\[\mathrm{H} \mathbf{x}_{i}=\left(\begin{array}{c}
\mathbf{h}^{1 \top} \mathbf{x}_{i} \\
\mathbf{h}^{2 \top} \mathbf{x}_{i} \\
\mathbf{h}^{3 \top} \mathbf{x}_{i}
\end{array}\right)
\]

对 \(\mathbf{x}_{i}^{\prime}\) 我们写成 \(\mathbf{x}_{i}^{\prime}=\left(x_{i}^{\prime}, y_{i}^{\prime}, w_{i}^{\prime}\right)^{\top}\)

则 \(\mathbf{x}_{i}^{\prime} \times \mathrm{Hx}_{i}\) 可改写成

\[\mathbf{x}_{i}^{\prime} \times \mathrm{Hx}_{i}=\left(\begin{array}{c}
y_{i}^{\prime} \mathbf{h}^{3 \top} \mathbf{x}_{i}-w_{i}^{\prime} \mathbf{h}^{2 \top} \mathbf{x}_{i} \\
w_{i}^{\prime} \mathbf{h}^{1 \top} \mathbf{x}_{i}-x_{i}^{\prime} \mathbf{h}^{3 \top} \mathbf{x}_{i} \\
x_{i}^{\prime} \mathbf{h}^{2 \top} \mathbf{x}_{i}-y_{i}^{\prime} \mathbf{h}^{1 \top} \mathbf{x}_{i}
\end{array}\right)
\]

由于 \(\mathbf{h}^{j\top}\mathrm{x}_i=\mathrm{x}_{i}^{\top}\mathbf{h}^j\), 我们可以将上式改写成

\[\left[\begin{array}{ccc}
\mathbf{0}^{\top} & -w_{i}^{\prime} \mathbf{x}_{i}^{\top} & y_{i}^{\prime} \mathbf{x}_{i}^{\top} \\
w_{i}^{\prime} \mathbf{x}_{i}^{\top} & \mathbf{0}^{\top} & -x_{i}^{\prime} \mathbf{x}_{i}^{\top} \\
-y_{i}^{\prime} \mathbf{x}_{i}^{\top} & x_{i}^{\prime} \mathbf{x}_{i}^{\top} & \mathbf{0}^{\top}
\end{array}\right]\left(\begin{array}{c}
\mathbf{h}^{1} \\
\mathbf{h}^{2} \\
\mathbf{h}^{3}
\end{array}\right)=\mathbf{0}
\]

简写成 \(\tilde{A}_i\mathbf{h}=\mathbf{0}\), \(\tilde{A}_i\) 是 \(3\times9\) 矩阵, \(\mathbf{h}\) 是 9 维向量

由于 \(\tilde{A}_i\) 的前两行加到第三行会导致第三行变为零, 所以 \(\tilde{A}_i\) 只有前两行有效

所以化简为

\[\left[\begin{array}{ccc}
\mathbf{0}^{\top} & -w_{i}^{\prime} \mathbf{x}_{i}^{\top} & y_{i}^{\prime} \mathbf{x}_{i}^{\top} \\
w_{i}^{\prime} \mathbf{x}_{i}^{\top} & \mathbf{0}^{\top} & -x_{i}^{\prime} \mathbf{x}_{i}^{\top}
\end{array}\right]\left(\begin{array}{c}
\mathbf{h}^{1} \\
\mathbf{h}^{2} \\
\mathbf{h}^{3}
\end{array}\right)=\mathbf{0}
\]

记成 \({A}_i\mathbf{h}=\mathbf{0}\)

由于 \(\mathbf{h}\) 有 9 个未知量, 但只有8条方程, 因此 \(\mathbf{h}\) 会有无穷个解, 这时我们只需加入限定条件 \(||\mathbf{h}||=1\) 即可将解固定

引用: Multiple View Geometry in Computer Vision Second Edition

最新文章

  1. 简单深入SpringMvc
  2. IOS照片颠倒分析及PHP服务端的处理
  3. ALV的颜色分为行的颜色、列的颜色和CELL的颜色
  4. 9.5---所有字符串的排列组合(CC150)
  5. HttpApplication的处理管道处理过程简单描述
  6. QT带OpenGL与不带的区别,QT5是一个伟大的框架,短时期内根本不会有替代者
  7. java执行机制
  8. IDF - CTF - 牛刀小试
  9. USACO Section 1.3 Barn Repair 解题报告
  10. 一、什么是hadoop?
  11. Golang 基于libpcap/winpcap的底层网络编程——gopacket安装
  12. 【读书笔记】【深入理解ES6】#12-代理(Proxy)和反射(Reflection)API
  13. POJ 3829 Seat taking up is tough(——只是题目很长的模拟)
  14. 阿里云配置安全组(配置入口port)
  15. python基础之文件操作和函数
  16. asp.net core 自定义401和异常显示内容(JWT认证、Cookie Base认证失败显示内容)
  17. 11.5 正睿停课训练 Day16
  18. Codeforces 844D Interactive LowerBound - 随机化
  19. vueawesomeswiper自定义 导航点
  20. Core Java 2

热门文章

  1. .NetCore下基于FreeRedis实现的Redis6.0客户端缓存之缓存键条件优雅过滤
  2. 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10)
  3. 统一返回对象封装和统一异常捕获封装springboot starter
  4. AI换脸实战教学(FaceSwap的使用)---------第二步Tools:处理输入数据集。
  5. epoll分布式通讯
  6. springboot跨域解决
  7. SpringMVC返回值类型及响应数据类型
  8. Cannot access child value on Newtonsoft.Json.Linq.JValue
  9. 可视化的容器镜像的图形管理工具Portainer【强烈推荐】
  10. vscode + vim 快捷键