Kinect - 使用深度将 (x, y) 像素坐标映射到“真实世界”坐标

2023-12-11

我正在开发一个项目,该项目使用 Kinect 和 OpenCV 将 fintertip 坐标导出到 Flash,以便在游戏和其他程序中使用。目前,我们的设置基于颜色工作,并将指尖点以 (x, y, z) 格式导出到 Flash,其中 x 和 y 的单位为像素,z 的单位为毫米。

但是,我们希望使用 Flash 中的 z 深度值将这些 (x, y) 坐标映射到“真实世界”值,例如毫米。

据我了解,Kinect 3D 深度是通过沿相机水平方向投影 X 轴、沿相机垂直方向投影 Y 轴、以及直接从相机镜头向前投影 Z 轴来获得的。深度值是从任何给定对象到 XY 平面绘制的垂线的长度。请参阅下面链接中的图片(从微软网站获得)。

Microsoft 深度坐标系示例

另外,我们知道 Kinect 的水平视野投射为 117 度角。

利用这些信息,我想我可以将任何给定点的深度值投影到 x=0, y=0 线上,并在该点绘制一条与 XY 平面平行的水平线,与相机的视野相交。我最终得到一个三角形,分成两半,其高度等于所讨论物体的深度。然后我可以使用一点三角学来求解视场的宽度。我的等式是:

W = tan(θ / 2) * h * 2

Where:

  • W = 视野宽度
  • theta = 水平视野角(117 度)
  • h = 深度值

(抱歉,我不能发图片,如果可以的话我会发的)

现在,求解 1000 毫米(1 米)的深度值,得出的值约为 3264 毫米。

然而,当实际查看生成的相机图像时,我得到了不同的值。也就是说,我在距离相机1米的地方放置了一根米尺,发现画面的宽度最多为1.6米,而不是计算出来的估计的3.264米。

我在这里缺少什么吗?任何帮助,将不胜感激。


深度流是正确的。您确实应该获取深度值,然后从 Kinect 传感器,您可以轻松定位现实世界中相对于 Kinect 的点。这是通过简单的三角函数完成的,但您必须记住,深度值是从 Kinect“眼睛”到测量点的距离,因此它是长方体的对角线。

实际上,请点击此链接如何使用 Kinect 从不同的对象获取真实世界坐标 (x, y, z)

重写是没有用的,你已经有了正确的答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kinect - 使用深度将 (x, y) 像素坐标映射到“真实世界”坐标 的相关文章

  • 正确地将 flash.utils.Dictionary 序列化为 SharedObject

    我的 Flex 项目中有一个名为 HashMap 的便利集合类 它本质上是 flash utils Dictionary 的包装器 带有一堆便利方法和添加的 同步的 ArrayCollection 以便我可以将 HashMap 传递给需要的
  • Qemu flash 启动不起作用

    我有一本相当旧的 2009 年出版 嵌入式 ARM Linux 书 其中使用u boot and qemu 的用法qemu与u boot书中对二进制的解释如下 qemu system arm M connex pflash u boot b
  • 在 Javascript 中检测 Flash 文件何时完成播放

    我正在使用 Javascript 将 Flash 文件嵌入到网站中 然后需要在播放完成后将其删除 有没有办法用普通的 Javascript 来做到这一点 或者是否需要将回调类型的函数添加到 Flash 文件本身 我该如何编码 JavaScr
  • 验证纬度和经度

    我想验证纬度和经度 现在 我只是检查该值是否不为空 但我想要进行验证以检查它是否是有效的纬度或经度 我怎么做 我的财产是这样的 public string Lat get return this lat set base Validatio
  • Flash ActionScript 2 的压缩和解压缩工具

    您是否知道 flash actionscript 2 的任何 zip unzip 组件或脚本 我知道这个图书馆 http ntt cc 2008 01 19 actionscript class library fzip html对于 Fl
  • 有没有办法将 SWF 转换为 SVG 格式?

    有没有办法将 FLA 或 SWF 转换为 SVG 格式 它可以是一个软件吗 或者甚至是网络转换器 我尝试了一些方法 但没有一个有效 所有这些似乎都已经过时了 不 SWF 支持的功能太多 而 SVG 格式无法创建有效的 SWF 版本 如果您只
  • 如何将旋转的 NetCDF 转换回正常的纬度/经度网格?

    我有一个带有旋转坐标的 NetCDF 文件 我需要将其转换为正常的纬度 经度坐标 经度为 180到180 纬度为 90到90 library ncdf4 nc open dat nf 对于尺寸 它显示 1 5 variables exclu
  • 在 Flash Player 10 中打开 pdf

    我需要在 Flash Player 10 中打开 PDF 该 swf 不会在浏览器中运行 并且系统上不会有 adobe reader 程序 我需要知道是否可以在 Flash 播放器中打开 PDF 而无需以任何方式进行转换 我在谷歌上搜索了无
  • 我们可以在 Actionscript 中将编译后的 Haxe swf 的 SWC 用作普通库吗?

    我们可以在 Actionscript 中将编译后的 Haxe swf 的 SWC 用作普通库吗 我有一个从haxe代码编译的swf 我可以尝试将它编译成其他SWC 我想将它用作AS3中的lib 是否可以 如果是的话怎么办 是的 可以 性能提
  • Flash - HTTP 请求在本地主机上不起作用

    首先 我试图修复一些我一开始就没有构建的东西 项目负责人向我保证 当他离开时 它工作得很好 尽管自从他离开后我从未接触过的版本似乎已经同样的问题 一般来说 我对编程也有点陌生 所以如果我在第一篇文章中遗漏了重要信息 请告诉我 我会尝试添加更
  • 如何判断一个字符串是否包含特定子串

    给定一个字符串A 如何确定该字符串是否包含子字符串 video x flv A indexOf video x flv gt 0
  • 如何获取 html5 画布内像素的像素坐标

    我知道您可以使用 getImageData 和 data 获取 html5 Canvas 内每个像素的值 但是有没有办法获取它们的坐标而不仅仅是它们的值 var w ctx canvas width h ctx canvas height
  • 我如何知道请求是否来自 flash swf?

    我有一个用 flash 开发的应用程序 我需要访问一些 php 文件 因此 如果访问来自 swf 则 php 文件会返回一些数据 如何判断请求是否来自Flash 无需将 get post 变量传递给 php 可能是用户代理 推荐人 请记住
  • 使用 Flex 3 从 SWF 创建 EXE,而不需要 AIR?

    我有一个用 Flex 3 MXML 和一些 AS3 编写的简单的小测试应用程序 我可以将其编译为 SWF 但我想将其制作为 EXE 这样我就可以将它提供给我的几个同事 他们可能会发现它有用 使用 Flash 8 我可以只针对 EXE 而不是
  • GLSL 上的稳健 atan(y,x) 用于将 XY 坐标转换为角度

    在GLSL 特别是我正在使用的3 00 中 有两个版本atan atan y over x 只能返回 PI 2 PI 2 之间的角度 而atan y x 可以考虑所有 4 个象限 因此角度范围涵盖 PI PI 的所有内容 就像atan2 在
  • Python,Tkinter:如何获取可滚动画布上的坐标

    我有一个带有滚动条的 Tkinter 画布 还有一些项目 当我单击它们时 它应该返回坐标 使用Python 这对于窗口中最初可见的对象效果很好 但是 当我向下滚动并且画布上更下方的项目进入视图时 单击时我不会获得它们的画布坐标 而是获得窗口
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • Flash Action Script 3 设计自定义MovieClip作为按钮

    我是 Flash AS3 的新手 我正在尝试创建一个应该充当按钮的影片剪辑 请参阅下图以供参考 我想知道如何为此自定义按钮创建一个包 以便我可以通过在参数中指定 名称 图像 来使用此包创建所需数量的按钮 Main movieclip mc
  • 避免滚轮被嵌入的 youtube / flash 视频劫持

    我正在对主页中嵌入 YouTube 视频的网站进行一些改进 我自己没有添加此代码 但它看起来像

随机推荐

  • REGEX 用逗号分隔的唯一数字

    我正在尝试验证以逗号分隔的数字 1 31 的唯一列表 不重复 i e 2 4 6 7 1 是有效输入 2 2 6无效 2有效 2 无效 1 2 3 4 15 6 7 31有效 1 2 3 4 15 6 7 32 无效 20 15 3 I t
  • 连接设备列表中的闪烁选项不允许我调试任何应用程序

    我有一个奇怪的问题 当我尝试在连接的设备中部署应用程序时 我有一个闪烁的选项 出现一秒钟 然后消失 然后再次出现 依此类推 当我尝试在任何连接的或虚拟设备中调试应用程序时 我收到此错误 01 23 18 49 36 Launching ap
  • 用户注册时自动创建个人资料 (Laravel 5)

    我正在尝试为我的注册用户创建一个个人资料页面 在此页面上 将显示身份验证 用户数据 姓名 电子邮件 还会显示额外的个人资料信息 城市 国家 地区 电话号码等 我已经建立了一对一的关系 但我遇到了一个问题 创建用户后 我想自动为该特定用户创建
  • Apache websocket 重定向到 Tomcat:mod_proxy 和 mod_proxy_wstunnel

    我正在尝试使用 mod proxy 和 mod proxy wstunnel 模块将流量从 Apache 重定向到 Tomcat HTTP 流量重定向没有问题 但我无法使用迄今为止尝试过的任何配置成功重定向 websocket 流量 我正在
  • 从 Python 调用并执行 r 脚本

    我正在尝试使用此 Python 脚本来调用 r 脚本并运行它 r 脚本是 dbc2csv r 其代码位于 Python 块下方 我设法调用 r 脚本并打开 R studio 但代码没有像我希望的那样自动运行 我的感觉是有什么问题subpro
  • 滚动位置时显示 Div

    首先我想参考这个网站 http annasafroncik it 我喜欢动画进入视野的方式 在 jquery 中创建类似的函数很难吗 有没有什么插件可以实现这样的效果 希望有人能帮助我 基本上 您想要为每个要隐藏的元素添加一个 hideme
  • 有没有办法获得“numpy.linalg.svd()”代码

    由于 numpy linalg svd 是一个预定义函数 我没有找到它的内部代码 from scipy import linalg u s v np linalg svd b full matrices True import inspec
  • SetTimeout 递归函数(Javascript)超出最大调用堆栈大小[重复]

    这个问题在这里已经有答案了 我有一个递归 SetTimeout 函数 可以在加载过滤器后单击页面上的过滤器 它们是通过 Ajax 加载的 因此在页面加载时无法立即使用 scope clickFilter function var filte
  • 核心数据:提取是否必须访问持久存储?

    假设我这样做 NSManagedObjectContext context a managed object context NSString entityName an entity name NSFetchRequest request
  • 循环 UIScrollView 但继续减速

    我已经设置了一个无限滚动视图 当它达到 0 内容偏移量时 我将其设置为最大内容偏移量 反之亦然 i e scrollView setContentOffset CGPointMake 0 0 animated NO 这是可行的 但它会阻止
  • session.php 中 laravel 生命周期配置变量的最大可能值是多少

    默认情况下 laravel 会话会在两小时后过期 我知道这是为了安全起见 但我有一个网络应用程序 其中有一个移动应用程序 android webview 用户不断抱怨每次访问该应用程序时都需要登录 作为临时解决方案 我想知道如何将此变量设置
  • 从eclipse导出maven项目

    有没有办法从 eclipse 导出整个 Maven 项目 我不只是想要一个 jar 文件 我正在寻找一种方法 让其他人可以下载整个项目及其依赖项以及所有已经设置的内容 方式与我相同 只需复制项目文件夹并让其他人将其作为 现有 Eclipse
  • ThrowIfCancellationRequested 似乎没有抛出任何异常

    我有以下代码 CancellationTokenSource cts new CancellationTokenSource ParallelOptions po new ParallelOptions po CancellationTok
  • 使用 PHP 变量从 MySQL 表中删除条目

    我很确定这个问题已经被问过很多次了 我已经在网上搜索过 但仍然找不到这个问题的解决方案 这是代码 我知道它不是注入证明 显示表中的所有条目 div div
  • 将整数四舍五入到最接近的 10

    我正在尝试在 python 中对整数进行舍入 我查看了内置的 round 函数 但似乎 rounds 是浮动的 我的目标是将整数四舍五入到最接近的 10 倍数 即 5 gt 10 4 gt 0 95 gt 100 等 5 及以上应向上舍入
  • 获取 Photos.app 中的图像数量?

    我知道可以使用 ALAssetsLibrary 获取 Photos app 中的图像 但如何获取 Photos app 中的照片总数 我几乎正在尝试检查照片的数量 因为我正在使用此问题的代码获取 Photos app 中的最后一张图像 从
  • 如何在 WinUI 3 应用程序中显示 Bitmap 对象

    我想显示 QRCoder 库生成的二维码 https github com codebude QRCoder 在我的 WinUI 3 桌面应用程序中 从 QRCoder 我得到System Drawing Bitmap object QRC
  • Mongoose $lookup 其中 localField 是foreignField中ObjectId的字符串

    我想要执行 lookup 其中 localField 是 ObjectId 的字符串表示形式 而外部字段是实际的 ObjectId 如果 items 是 String 值但 id 是 ObjectId 您知道 MongoDB 3 2 是否可
  • 销毁或删除 Backbone.js 中的视图

    我目前正在尝试为视图实现销毁 删除方法 但我无法获得适用于我所有视图的通用解决方案 我希望有一个事件附加到控制器 这样当新请求通过时它会破坏以前的视图then加载新的 有没有办法做到这一点 而不必为每个视图构建删除函数 我必须绝对确定视图不
  • Kinect - 使用深度将 (x, y) 像素坐标映射到“真实世界”坐标

    我正在开发一个项目 该项目使用 Kinect 和 OpenCV 将 fintertip 坐标导出到 Flash 以便在游戏和其他程序中使用 目前 我们的设置基于颜色工作 并将指尖点以 x y z 格式导出到 Flash 其中 x 和 y 的