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); ` 👉 可得到: * 投影平面相对于相机的 **倾角** * 法向量 * 平移方向 这一步在你做 **投影光学 / 显示模组装调** 时非常关键。

相关推荐
翔云1234566 小时前
端侧推理:全面解析与深度洞察
人工智能·ai·大模型
AI精钢6 小时前
AI Agent 从上线到删库跑路始末
网络·人工智能·云原生·aigc
码农小旋风6 小时前
2026 终端 AI 编程工具深度横评:Claude Code、Codex CLI、Gemini CLI、Aider 怎么选
人工智能·gpt·claude
开开心心就好6 小时前
仅168KB的桌面图标自动隐藏工具
windows·计算机视觉·计算机外设·excel·启发式算法·宽度优先·csdn开发云
Chef_Chen7 小时前
论文解读:多模态智能体长期记忆突破:M3-Agent让AI像人一样“看、听、记、想“
人工智能·机器学习·agent·memory
zhuiyisuifeng7 小时前
2026AI办公革命:Gemini3.1Pro重塑职场效率
人工智能
threelab7 小时前
Three.js UV 图像变换效果 | 三维可视化 / AI 提示词
javascript·人工智能·uv
海兰7 小时前
【第28篇】可观测性实战:LangFuse 方案详解
人工智能·spring boot·alibaba·spring ai
feng14567 小时前
OpenSREClaw - 故障复盘和变更评审双 Agent 案例
运维·人工智能
普马萨特7 小时前
室内外定位导航的最新趋势(基于国际大会观察)
人工智能