首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >映射投影点到真实世界点

映射投影点到真实世界点
EN

Stack Overflow用户
提问于 2018-09-26 05:30:37
回答 1查看 210关注 0票数 2

我找遍了这个问题的答案,但我找不到答案,所以我在这里问。

问题:

我有一个激光投射在一个表面上,从头顶,我想投射一些特定的大小形状在这个表面。为了做到这一点,我需要‘校准’的激光,以地面在现实世界。

激光在它自己的坐标系中投影,在x和y方向范围从-32000到32000。我有一个粗糙的矩形在我的表面设置目标(更多细节见下图)。目标是以毫米为单位建立的,是它们自己的坐标系。

我需要能够取点毫米,并使他们在这个范围内-32000到32000准确地在一系列的场景中。

示例:

,确定所需点的激光空间坐标最精确的方法是什么?

问题2:

投影空间不一定是平坦的。它可以向任何方向倾斜。例如,如果提高底部(相对于示例图片),实际世界坐标在二维中保持不变,但测量到的激光坐标更像是梯形。见下图

如果有人遇到/解决了类似的问题,或者甚至可以开始指出解决方案的正确方向,我们将不胜感激。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 09:03:12

我在这里的帖子上也有同样的问题:https://stackoverflow.com/a/52480400/9130280

举个例子,我问我的图片问题,因为它更容易解释,但我应用解决方案的设备定位在一个表面。这与你想要做的事情很接近。

基本上,您必须使用OpenCvSharp 3库(来自nuget)。

首先,你必须得到一个同调矩阵。你唯一需要知道的坐标是边缘。因此,用边填充两个数组,然后使用:

homographyMatrix = OpenCvSharp.Cv2.FindHomography(originalPointsList, targetPointsList);

然后在激光坐标下得到“毫米”中的任何一点。

targetPoint = OpenCvSharp.Cv2.PerspectiveTransform(orignalPoint, homographyMatrix);

如果你需要更多细节,请告诉我。

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

https://stackoverflow.com/questions/52510536

复制
相关文章

相似问题

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