- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在 build 一个互动楼层。主要思想是将 Xtion 相机进行的检测与我在地板投影中绘制的物体相匹配,并让它们跟随人。
我还检测到地板上转换为多边形的投影区域。相机可以检测到“屏幕”区域之外。
问题是该算法使用深度数据检测其下方人的最顶部,并且由于该点与相机之间的角度,该点不在人脚的正上方。
我知道到地板的距离和检测到的人的高度。而且我知道相机不垂直于地板,但我不知道相机的倾斜角度。
我的问题是如何将该 3D 点投影到地板上的多边形上?
我希望有人能给我指出正确的方向。我一直在阅读有关相机投影的信息,但我没有看到如何在这个特定问题中使用它。
提前致谢
更新:
使用 Diego O.d.L 的遮阳篷,我能够进行近乎完美的检测。我将写下我为那些可能正在寻找相同解决方案的人使用的步骤(我不会详细介绍如何进行检测):
第一步:校准
在这里,我使用 openNI 从相机获取了一些颜色和深度帧,并清除了投影区域。
在彩色帧上检测到投影区域。
然后我将检测点转换为现实世界坐标(使用 OpenNI 的 CoordinateConverter
)。通过新的现实世界检测点,我寻找更适合它们的平面。
第二步:检测
我使用检测算法获取新人物检测并使用深度帧跟踪他们。
这些检测点被转换为现实世界坐标并投影到先前计算的平面上。这可以纠正人的高度和地板之间的偏差。
希望这对您有所帮助。再次感谢您的遮阳篷。
最佳答案
最初使用相机坐标系。我假设您在从 (row,column,distance)
转换为与相机轴 (x,y,z)
对齐的真实世界系统时没有问题:
使用三个或更多点(为了稳健性)计算平面相机投影 (x,y,z)。 (选择你最喜欢的算法, i.e
然后找到你的头点到地板平面的投影( example )
最后,您可以将其转换为地板坐标系或仅保存在相机系统中
根据您的预期应用程序的描述,我猜想恢复图像坐标可能对您更有用。
关于c++ - 在交互式地板项目上将顶 View 人体检测与地板投影相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266399/
菜鸟问题:我试图将一个球扔到地板上并使其粘在那里,甚至滚过平面。现在它穿过飞机。我不确定我在哪里犯了错误,或者我是否做错了什么。 var world, timeStep=1/60, scene, re
我的代码工作正常,直到我在编译时突然收到这条消息: c:\program files (x86)\microsoft visual studio 12.0\vc\include\math.h(700)
如何在 jq jq-1.5-1-a5b5cbe 中对数字进行舍入、地板、天花板和截断? 例如,使用 {"mass": 188.72} , 我要 {"mass": 188}带地板,{"mass": 18
我知道在 Java(可能还有其他语言)中,Math.pow 是在 double 上定义的并返回一个 double 。我想知道到底为什么写 Java 的人不也写一个返回 int 的 pow(int, i
我是一名优秀的程序员,十分优秀!