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

👉 可得到:

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

  • 法向量

  • 平移方向

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

相关推荐
问商十三载4 分钟前
AI引擎生成式优化服务商怎么选?技术核验清单(附脚本)
数据库·人工智能·机器学习
EatFan10 分钟前
2026 后端架构进入 AI 原生阶段:事件驱动 + 虚拟线程 + Agent 内嵌三驾马车怎么落地
人工智能·架构·agent·虚拟线程·事件驱动·ai原生·后端架构
奋进的LY14 分钟前
spacy的安装和使用教程
人工智能·python·深度学习·github
小宋102114 分钟前
Diffusion LLM 为什么能并行生成:从逐 Token 解码到多位置去噪实战
人工智能
znx93916 分钟前
机器学习赋能量化交易:解锁新时代投资的核心竞争优势
人工智能·python·机器学习·期魔方
atwednesday16 分钟前
理解 Transformer
人工智能
Timmy18 分钟前
前端转全栈笔记:讲框架之前,先把 TypeScript 这关过了
前端·人工智能·node.js
_Meilinger_20 分钟前
碎片笔记|生成图像检测与溯源领域近期审稿意见锦囊
人工智能·生成图像检测·投稿经验·生成图像取证·ai治理·生成图像溯源·科研经验
XUHUOJUN21 分钟前
AI-Native Software Engineering:氛围编程的工程化与 Software Change Management
人工智能·ai-native
AI日报派送佬23 分钟前
2026年9月30日AI行业日报|OpenAI DevDay连发25项更新,GPT-6.1 Sol&Dots智能体落地,全球AI监管收紧
人工智能·gpt·openai·ai智能体·大模型技术·人工智能前沿·ai监管