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

相关推荐
杜子不疼.4 分钟前
CANN计算机视觉算子库ops-cv的图像处理与特征提取优化实践
图像处理·人工智能·计算机视觉
大闲在人5 分钟前
软件仍将存在,但软件公司会以全新形式出现——从Claude智能体引发万亿市值震荡看行业重构
人工智能
艾莉丝努力练剑6 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
张人玉6 分钟前
VisionPro 定位与卡尺测量学习笔记
笔记·学习·计算机视觉·vsionprp
芷栀夏10 分钟前
从 CANN 开源项目看现代爬虫架构的演进:轻量、智能与统一
人工智能·爬虫·架构·开源·cann
梦帮科技19 分钟前
OpenClaw 桥接调用 Windows MCP:打造你的 AI 桌面自动化助手
人工智能·windows·自动化
永远都不秃头的程序员(互关)26 分钟前
CANN模型量化赋能AIGC:深度压缩,释放生成式AI的极致性能与资源潜力
人工智能·aigc
爱华晨宇29 分钟前
CANN Auto-Tune赋能AIGC:智能性能炼金术,解锁生成式AI极致效率
人工智能·aigc
聆风吟º32 分钟前
CANN算子开发:ops-nn神经网络算子库的技术解析与实战应用
人工智能·深度学习·神经网络·cann
偷吃的耗子37 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn