问题标签 [orbbec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 python 和 OpenNI2 录制 Orbbec Astra 流
我正在尝试使用此代码从 Astra 模型中记录深度和颜色流。它基本上可以工作,但有一个问题,成功录制后,下一个将不会录制深度流,没有任何错误或异常,除非您拔下并重新连接 USB 电缆。这使我认为 write_files 方法的最终指令无法正常工作,并且某些东西没有正确关闭(流、记录器、设备..)。我尝试了关闭和停止的不同组合,但没有任何运气。使用 Orbbec 提供的最新 OpenNI2 包,在 Ubuntu 16.04 和 Win10 上的行为是相同的。相机是阿斯特拉。有什么帮助吗?
python - 如何将 OpenNI VideoFrame 转换为 OpenCV Mat 数据结构?
我正在寻找关于VideoFrame
我试图转换为 opencv 的 openni 对象格式的一般描述/规范Mat
。
是否有一些官方网站/文档可用?我在ros.org上找到了以下描述VideoFrameRef
andOniFrame
类的内容。但首先这似乎与 libfreenect 有关,其次我没有找到有关框架结构的任何具体信息(如尺寸、通道等)。
因此,任何链接或描述将不胜感激!
下面的代码是我正在试验的一个片段。内的转换部分while loop
只产生一个黑色视频流。
orbbec - 将像素值转换为距离
我得到了 Orbbec 相机。
我使用 C#。
我有他们的 SDK 的 C# 包装器。
我有深度流,可以从该流中获取图像。但是,如何将像素值转换为距离(以毫米为单位)?
我环顾四周,即谷歌搜索,并给 Orbbec 人发了电子邮件。
到目前为止我的代码:
??如何读取 mat 数据并将其转换为距离?}
谢谢
arm - 将 ARM 的 Orbbec Embedded S 摄像头与 OpenNI 结合使用
我有一个已连接嵌入式 S 相机的 ARM SoC。我可以看到相机已连接:
我从https://orbbec3d.com/develop/下载了 OpenNI_2.3.0.63.zip ,然后将 OpenNI-Linux-Arm64-2.3.0.63 目录复制到我的设备并运行 install.sh。现在,当我插入相机时,我得到:
我交叉编译了一个简单的应用程序:
当我第一次运行它时,我得到了:
所以我将 libOpenNI2.so 复制到 /usr/lib。现在,当我运行它时,我得到:
为什么看不到摄像头?我还需要做些什么才能让它工作吗?
c++ - 为什么我在尝试运行 Orbbec Astra 时收到此错误消息
我一直在尝试测试 Orbbec Astra stereo S 和嵌入式 S 的 DK。我尝试运行示例查看器来测试深度相机的质量,但每次我这样做时都会收到此错误消息。代码本身是直接从 Orbbec 网站下载的,因此肯定不会有任何错误。
opencv - Orbbec 和 opencv 统一。地板上的物体检测
我正在使用“Opencv for unity”和 orbbec astra。我将摄像头安装在天花板上,我需要检测地板上是否存在物体。我怎样才能拆除地板?
我不能使用背景减法,因为一段时间后,物体会变成背景。
我试图“记录”一个没有物体作为背景的帧,并且每一帧我都从 orbbec 的深度图像中减去它。它工作得很好,但 5-10 分钟后它开始发出很大的噪音并且它不再可用了。
我不明白为什么在这段时间之后地板的深度图像会发生变化(相机保持静止)。
有没有其他方法可以去除地板?
编辑(添加图像):
这是垫 bg:
“白色”对象是减法后的 imgMat,我将检测限制在距离地板几厘米处(Core.inRange 函数)
5分钟后也是一样。这是我的问题。两张图片之间没有任何移动
unity3d - 将单通道 16 位图像加载到 Unity3D 中的纹理
我正在使用深度传感器(Orbbec Astra Pro)并希望在 Unity 中显示红外图像。我收到的数据是一个ushort[]
(或任何其他类型,大于 8 位)。
所以我可以创建一个单通道16位纹理infraredTexture = new Texture2D(infraredFrame.Width, infraredFrame.Height, TextureFormat.R16, false);
,但我不知道如何用红外数据填充纹理,因为LoadRawTextureData
只需要一个byte[]
或IntPtr
。
所以最后我希望在 Unity 中看到 16 位灰度纹理。这甚至可能吗?先感谢您!