opencv 未知函数记录-findHomography

1️⃣ 为什么 keystone 一定要用 findHomography

Keystone 的本质

  • 投影面 不与成像面平行

  • 产生 透视变换(projective transform)

数学上:

x′y′w′\]=\[h11h12h13h21h22h23h31h321\]\[xy1\]\\begin{bmatrix} x' \\\\ y' \\\\ w' \\end{bmatrix} = \\begin{bmatrix} h_{11}\&h_{12}\&h_{13}\\\\ h_{21}\&h_{22}\&h_{23}\\\\ h_{31}\&h_{32}\&1 \\end{bmatrix} \\begin{bmatrix} x\\\\y\\\\1 \\end{bmatrix}​x′y′w′​​=​h11​h21​h31​​h12​h22​h32​​h13​h23​1​​​xy1​​ ✔ **8 自由度** ❌ 仿射(6 DOF)/ 相似(4 DOF)都不够 👉 所以: * `estimateAffinePartial2D` ❌ * `estimateAffine2D` ❌ * **`findHomography` ✔** ### 6️⃣ 如何判断"是否真的需要 Homography"⚠️ #### 👉 判定技巧(非常实用) 1️⃣ 用 `estimateAffine2D` 拟合 2️⃣ 看残差分布: * **边缘残差呈方向性梯度** → 透视存在 * **整体随机小误差** → 仿射够用 或: ``` ``` `|h31| + |h32| ≈ 0 → 非透视 |h31| + |h32| > 1e-4 → 透视显著` ### 7️⃣ 从 H 中读出"物理意义"(进阶) 虽然 homography 不直接给角度,但可以: #### ① 平面姿态恢复(需内参 K) ``` ``` `cv::Mat K; // 相机内参 std::vector Rs, Ts, Ns; cv::decomposeHomographyMat(H, K, Rs, Ts, Ns); ` 👉 可得到: * 投影平面相对于相机的 **倾角** * 法向量 * 平移方向 这一步在你做 **投影光学 / 显示模组装调** 时非常关键。

相关推荐
飞哥数智坊6 小时前
我的“龙虾”罢工了!正好对比下GLM、MiniMax、Kimi 3家谁更香
人工智能
风象南7 小时前
很多人说,AI 让技术平权了,小白也能乱杀老师傅 ?
人工智能·后端
董董灿是个攻城狮8 小时前
大模型连载1:了解 Token
人工智能
RoyLin11 小时前
沉睡三十年的标准:HTTP 402、生成式 UI 与智能体原生软件的时代
人工智能
needn13 小时前
TRAE为什么要发布SOLO版本?
人工智能·ai编程
毅航13 小时前
自然语言处理发展史:从规则、统计到深度学习
人工智能·后端
前端付豪14 小时前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
ursazoo14 小时前
写了一份 7000字指南,让 AI 帮我消化每天的信息流
人工智能·开源·github
_志哥_17 小时前
Superpowers 技术指南:让 AI 编程助手拥有超能力
人工智能·ai编程·测试
YongGit18 小时前
OpenClaw 本地 AI 助手完全指南:飞书接入 + 远程部署实战
人工智能