四点DLT (Direct Linear Transformation) 算法
\(\mathrm{x}_{i}\) 表示变化前的齐次坐标
\(\mathbf{x}_{i}^{\prime}\) 表示变化后的齐次坐标
我们需要求到一个 \(3\times3\) 的变换矩阵 \(\mathrm{H}\) , 使得
\]
令 \(\mathbf{h}^{j\top}\) 表示 \(\mathrm{H}\) 的第 \(j\) 行 , 即 \(\mathrm{H}=[~\mathbf{h}^{1\top};~ \mathbf{h}^{2\top}; ~ \mathbf{h}^{3\top}~]\)
则
\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}\) 可改写成
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\), 我们可以将上式改写成
\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\) 只有前两行有效
所以化简为
\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
最新文章
- 简单深入SpringMvc
- IOS照片颠倒分析及PHP服务端的处理
- ALV的颜色分为行的颜色、列的颜色和CELL的颜色
- 9.5---所有字符串的排列组合(CC150)
- HttpApplication的处理管道处理过程简单描述
- QT带OpenGL与不带的区别,QT5是一个伟大的框架,短时期内根本不会有替代者
- java执行机制
- IDF - CTF - 牛刀小试
- USACO Section 1.3 Barn Repair 解题报告
- 一、什么是hadoop?
- Golang 基于libpcap/winpcap的底层网络编程——gopacket安装
- 【读书笔记】【深入理解ES6】#12-代理(Proxy)和反射(Reflection)API
- POJ 3829 Seat taking up is tough(——只是题目很长的模拟)
- 阿里云配置安全组(配置入口port)
- python基础之文件操作和函数
- asp.net core 自定义401和异常显示内容(JWT认证、Cookie Base认证失败显示内容)
- 11.5 正睿停课训练 Day16
- Codeforces 844D Interactive LowerBound - 随机化
- vueawesomeswiper自定义 导航点
- Core Java 2
热门文章
- .NetCore下基于FreeRedis实现的Redis6.0客户端缓存之缓存键条件优雅过滤
- 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10)
- 统一返回对象封装和统一异常捕获封装springboot starter
- AI换脸实战教学(FaceSwap的使用)---------第二步Tools:处理输入数据集。
- epoll分布式通讯
- springboot跨域解决
- SpringMVC返回值类型及响应数据类型
- Cannot access child value on Newtonsoft.Json.Linq.JValue
- 可视化的容器镜像的图形管理工具Portainer【强烈推荐】
- vscode + vim 快捷键