为了账号安全,请及时绑定邮箱和手机立即绑定

将单应性应用于整个图像后如何将 2D 点转换回来?

将单应性应用于整个图像后如何将 2D 点转换回来?

守着星空守着你 2022-10-05 16:57:15
我是 opencv 和图像相关几何的新手。但现在我正在处理一些图像处理任务。这是我所做的:给定 pts_src、pts_dst,我用 cv2.findHomograpy() 和 cv2.warpPerspective() 扭曲了整个图像cv2.findHomography 为我提供了一个 3x3 的单应矩阵。cv2.warpPerspective() 为我提供了一个扭曲的图像,我可以从这个扭曲的图像中检测到一些特征点。但是,我需要将特征点坐标映射回原始输入图像。有人可以告诉我如何实现吗?
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

我认为单应矩阵的逆矩阵将是从pts_dst回映射到的新矩阵pts_src

正如您在评论中所说并如此处所示您的第三个分量似乎确实是w结果向量的比例系数:

(x, y) → (x′/w, y′/w)
其中(x′, y′, w′) = mat ⋅ [x y 1]
(...) 在 2D 矢量变换的情况下,z 分量被省略。

所以你可以通过做来重新调整它(V[0]/V[2], V[1]/V[2]),就像你在评论中提到的那样。

另外,我认为这个比例因子与矩阵的生成方式有关,所以请检查矩阵的详细信息,正如官方文档所说cv2.findHomography()

单应矩阵被确定为一个尺度。因此,它被归一化,使得 h33=1。

希望这可以帮助!


查看完整回答
反对 回复 2022-10-05
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号