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

相关推荐
初学大模型2 分钟前
我们从神经网络进化过程的角度从新审视神经网络
人工智能·机器人
小北方城市网3 分钟前
第 4 课:微服务 API 网关设计与接口全生命周期管理|统一入口与接口治理实战
java·大数据·运维·人工智能·python·深度学习·数据库架构
Wu_Dylan3 分钟前
液态神经网络系列(一) | 液态神经网络是什么?——从“脉冲”到“连续”的范式转移
人工智能
Blossom.1185 分钟前
知识图谱增强大模型:构建可解释的行业智能搜索引擎
运维·人工智能·python·智能手机·自动化·prompt·知识图谱
派大鑫wink6 分钟前
网络安全新挑战:AI 驱动的攻防对抗与防护策略(附实战操作)
人工智能·python·安全·web安全
CCPC不拿奖不改名6 分钟前
Python基础:python语言中的文件操作+面试题目
开发语言·数据结构·人工智能·python·学习·面试·职场和发展
飞哥数智坊7 分钟前
谈谈我对 Claude Code 之父13条技巧的理解
人工智能·ai编程·claude
ar01239 分钟前
水务应用AR技术:推动智慧水务的创新实践
人工智能·ar
kisshuan1239611 分钟前
基于YOLOv5的熊猫个体识别与分类系统_2
yolo·计算机视觉·分类