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);

👉 可得到:

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

  • 法向量

  • 平移方向

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

相关推荐
虹科网络安全1 分钟前
艾体宝产品|Arango AutoGraph 如何重构企业的知识图谱
人工智能·重构·知识图谱
戴西软件15 分钟前
戴西 DLM 许可授权管理系统:破解无网络环境下工业软件授权难题,助力制造企业降本增效
网络·人工智能·python·深度学习·程序人生·算法·制造
前端不太难16 分钟前
从GPU到AI工厂:智能时代的基础设施革命
人工智能·gpu算力
AI焦点21 分钟前
跨越协议鸿沟:Tool Use状态机从Anthropic到OpenAI兼容体系的适配要点
前端·人工智能
Black蜡笔小新28 分钟前
制造业AI质检工作站/企业AI算力工作站DLTM助力制造业质检智能化升级
人工智能·深度学习·机器学习
提示词牛马29 分钟前
2026年人工智能(AI)现状分析报告
人工智能
watersink37 分钟前
MCP 协议与 Skill 开发架构培训文档
人工智能·架构
做萤石二次开发的哈哈38 分钟前
AI 陪护机器人硬件如何接入萤石ERTC 实现实时通话?
人工智能·音视频·实时音视频·萤石开放平台
Luhui Dev43 分钟前
Anthropic 的 Claude Code 翻车经验
人工智能·luhuidev