opencv 未知函数记录-findHomography

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

Keystone 的本质

  • 投影面 不与成像面平行

  • 产生 透视变换(projective transform)

数学上:

x′y′w′=h11h12h13h21h22h23h31h321xy1\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<cv::Mat> Rs, Ts, Ns; cv::decomposeHomographyMat(H, K, Rs, Ts, Ns);

👉 可得到:

  • 投影平面相对于相机的 倾角

  • 法向量

  • 平移方向

这一步在你做 投影光学 / 显示模组装调 时非常关键。

相关推荐
学编程就要猛5 小时前
RAG(Retrieval Augmented Generation)
人工智能·spring ai
冬奇Lab6 小时前
一天一个开源项目(第259篇):Modern Web Guidance —— Chrome 团队给 AI 编码 Agent 的「现代 Web 最佳实践」外挂
人工智能·开源
飞哥数智坊7 小时前
打造自己的 Personal Agent,从抄大肥鱼作业开始
人工智能·deepseek
对你无可奈何7 小时前
Magpie 实战:把 WorkBuddy、Qoder 的订阅模型接进一个本地池子
人工智能
Csvn7 小时前
每请求到底多少钱?把 Token 成本算成可观测指标(C01)
人工智能·aigc·agent
吴名氏.8 小时前
Java转AI Agent教程(第十三周)混合检索与重排
java·数据库·人工智能·ai·ai agent
老金带你玩AI9 小时前
惊人的一致性!Seedream 5.5实测!
人工智能
数据技术说10 小时前
在 KES AI 数据库上搭一条 NL2SQL 链路:语义、召回、权限各放哪
人工智能·sql·代码规范
jay神10 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计