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

相关推荐
AI即插即用5 小时前
即插即用系列 | AAAI 2026 WaveFormer: 当视觉建模遇上波动方程,频率-时间解耦的新SOTA
图像处理·人工智能·深度学习·神经网络·计算机视觉·视觉检测
轻览月5 小时前
【DL】复杂卷积神经网络Ⅰ
人工智能·神经网络·cnn
逄逄不是胖胖5 小时前
《动手学深度学习》-55-2RNN的简单实现
人工智能·深度学习
冰菓Neko5 小时前
科目四刷题总结
人工智能
guizhoumen6 小时前
2026年建站系统推荐及选项指南
大数据·运维·人工智能
咚咚王者6 小时前
人工智能之核心技术 深度学习 第四章 循环神经网络(RNN)与序列模型
人工智能·rnn·深度学习
蘑菇物联6 小时前
蘑菇物联入选“预见·2026”年度双榜,以AI技术赋能制造业绿色转型!
大数据·人工智能
无忧智库6 小时前
智慧城市核心标准全景解析:从顶层设计到落地实践的深度解读(PPT)
人工智能·智慧城市
2501_942191776 小时前
【YOLOv26实战】健身器材物体检测与识别:从模型优化到实际应用
人工智能·yolo·目标跟踪
m0_466525296 小时前
东软与葫芦岛市民政局签约 共建智慧养老服务平台
大数据·人工智能