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 小时前
基于深度学习的宝石图像分类系统
人工智能·python·深度学习·机器学习·分类·数据挖掘
雨晨源码(同名B站)5 小时前
【2027届人工智能专业选题】基于yolov8的农业病虫害图像识别与分类系统 |深度学习 计算机视觉
人工智能·深度学习·yolo·计算机视觉·分类
格林威5 小时前
多相机并行采图最佳实践:Task.WhenAll + 异常处理 + 资源释放
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·机器视觉
c_lb72885 小时前
零基础选策略工具,先分清三件事
人工智能·python
新知图书5 小时前
4.2 北京欢迎您:基于Anthropic的京韵导览Agent实战(智能体工程)
人工智能·agent·ai agent·智能体·智能体工程
程序员z75 小时前
OpenClaw 完整安装教程(2026 全平台通用版)
人工智能
安逸sgr5 小时前
优化器是什么?SGD、Momentum、Adam 有什么区别?
人工智能·ai·大模型·agent·智能体
动物园猫5 小时前
狗行为目标检测数据集:6类别、近3,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
陈童学哦5 小时前
Gemini 3.7 Flash深度解读:更新倍速+半价内卷,Pro系列处境尴尬
人工智能
知识燃料5 小时前
企业技术决策者落地 AI Agent 体系,AWS 中国峰会有哪些战略与工程内容可看?
大数据·人工智能