首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三维感知在opencv2中的应用

三维感知在opencv2中的应用
EN

Stack Overflow用户
提问于 2013-09-28 14:16:28
回答 1查看 386关注 0票数 2

有谁能解释一下,如果有可能,如何使用cv2.getPerspectiveTransform()。

我有关于我的图像的3d信息:我知道a,b的长度,以及c,d,e,f和g的不同的高度。我让高度不同来获得更多的3d信息,但是如果不需要,那就更好了。

最终,我需要知道粉红点在矩形中的位置,在实现了对我的x,y位置的转换后,我从相机馈送得到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-28 18:16:20

如果用C,D,E,F表示原始图像中黑色多边形四个角的位置(每个角是一个2D点),而C',D',E',F‘则是目标图像中相应点的位置(可能是(0,0),(a,0),(a,b),(0,b),M=cv2. cv2.getPerspectiveTransform({C,D,E,F},{C',D',E',F'})是从一个多边形到另一个多边形的透视变换。

给定的位置G,即g在原始图像中的黑色多边形上的垂直投影,您可以将其在目标图像中的位置计算为cv2.transform(G,M)。这将返回一个点(x,y,z),其中最后一个坐标z是一个规范化项。当你的点在目标图像中是“无穷大”时,这个z是零。如果z不是零,你要寻找的点是(x/z,y/z)。

如果z是零,你的点在无穷远处,在向量(x,y)的支持方向上(考虑一下G在源图像中黑色多边形的两个相对边的支持线的交点上)。

如果你知道c,d,e,f,G的高度相等,这些点也是共面的,并且完全相同的方法适用于c,d,e,f,g,而不是C,D,E,F,G。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19067908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档