我正在开发一个应用程序当一个kinect传感器检测到一个人可以在其上工作的骨架,如果其他人接近现有用户,它会检测到第二个人.
我想限制用户kinect传感器首先检测到它,如果其他用户来了这不应该检测另一个.
提前致谢
此查询与使用OpenNI2 SDK配置Occipital Structure Sensor有关.SDK已经与源自XBox 360技术的MS Kinect系列深度感应设备一起使用.结构传感器基本上是MS Kinect/Carmine的绝大多数版本,它专为iPad而设计.但是,制造商也可以使用OpenNI2 SDK进行配置.
我正在尝试使用作为OpenNI2接口的一部分提供的NiViewer配置此设备.根据以下链接的快速入门指南,PS1080.ini文件中的"UsbInterface = 2"必须更改为"UsbInterface = 0",此步骤应允许此设备的深度和IR流正常工作.
但是,当NIViewer运行时,尽管显示设备已连接,但它不会流式传输此设备的任何流.经过一些尝试,我发现可以右键单击NIViewer并手动启用(深度和IR)流.但是,完成此操作后,将显示以下错误(对于IR流尝试):
无法创建IR流:XnOniDevice:无法初始化类型1的流:无法设置USB接口!流:无法使用源1创建上下文:无法从设备创建流:0237c220,源1
基于我自己的搜索,Kinect使用MACOSX报告类似的"未能设置USB接口"问题,但该解决方案并非真正特定于使用Windows 7 64位的结构传感器.
如果您直接查看XnOniDevice.cpp,它确实显示捕获的流不可用:
https://github.com/OpenNI/OpenNI2/blob/master/Source/Drivers/PS1080/DriverImpl/XnOniDevice.cpp
我估计,不需要重新编译源代码,因为基于Windows的系统不需要这样做.在这方面的任何帮助将受到高度赞赏.如果我找到了解决这个问题的方法,我会报告回来.
我在做一个项目。我们生成了一个网格 3D,我需要计算一个 3D 对象的几个体积。
我不知道如何计算,我认为数学知识太少了。有没有办法计算这个
EDTI :我不是在寻找所有的代码,而是在寻找方向或伪代码
我有一个表示灰度图像的字节数组,我想使用 Emgu 包装器在 C# 中与 openCV 一起使用。我试图弄清楚如何将其转换为 anEmu.CV.Image而无需先将其转换为System.Drawing.Bitmap.
到目前为止,这个构造函数Image似乎很有前途。看起来它需要像素行、列,然后是包含我的数据的数组来构建图像。但是,它希望它们采用奇怪的格式,而我正在努力解决如何正确构建TDepth[,,] data参数的问题。
这是我到目前为止所拥有的:
// This gets initialized in the constructor and filled in with greyscale image data elsewhere in the code:
byte[] depthPixelData
// Once my depthPixelData is processed, I'm trying to convert it to an Image and this is where I'm having issues
Image<Gray, Byte> depthImage = new Image<Gray, Byte>([depthBitmap.PixelHeight, depthBitmap.pixelWidth, depthPixelData]);
Run Code Online (Sandbox Code Playgroud)
Visual Studio 对我来说很明显,仅仅传入一个数组并不会削减它,但我不知道如何TDepth[,,]用我的像素数据构造必要的对象以传递给Image构造函数。
这段代码需要以 ~30fps …
我目前正在做一个项目,我需要使用 PyKinect 库访问和处理深度数据。
我想要做的是定义一个深度阈值,我将在其中进行一些图像分割,但由于我是 PyKinect 的新手,我仍然不太清楚在哪里寻找资源,我不知道如何访问该数据并获取值。
我也试过使用 freenect 库,但我无法让它工作。
谁能告诉我该怎么做或将我重定向到某种文档?
我的问题是关于我正在研究的学校项目.它涉及在我的Kinect相机生成的骨架上绘制3D服装模型(如牛仔裤).
可以在此处找到一个示例:http://www.youtube.com/watch?v = p70eDrvy-uM.
我搜索过这个问题,并发现了一些相关的主题,如: http://forums.create.msdn.com/forums/t/93396.aspx -这个问题的演示使用BREKEL用于运动拍摄的一种方式.但是,我必须在XNA中呈现它.
我相信答案在于3D模型的骨架数据(正确导出为.FBX文件).有没有办法将该骨架与Kinect相机生成的骨架对齐或匹配?
提前致谢!
编辑:我正在取得一些进展.我一直在与一些不同型号玩耍,试图向上移动一些骨头(非常简单的应用CreateTranslation的与上经过的游戏时间计算的浮动),和它的作品,如果我选择rootbone,但它不工作在一些骨头上(例如手或手臂).如果我跟踪该骨骼的变换属性,包括X,Y和Z属性,那么我可以看到某些东西正在移动.但是所选择的骨骼保留在它的位置.任何人都有任何想法......?
我有两个连接在不同USB控制器上的kinect传感器.如果我在它们两个上启用骨架流,当我在第二个传感器上调用start方法时会出现异常:
This API has returned an exception from an HRESULT: 0x830100AA
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
at Microsoft.Kinect.KinectExceptionHelper.CheckHr(Int32 hr)
at Microsoft.Kinect.NuiSensor.NuiInitialize(UInt32 dwFlags)
at Microsoft.Kinect.KinectSensor.Initialize(SensorOptions options)
at Microsoft.Kinect.KinectSensor.Start()
Run Code Online (Sandbox Code Playgroud)
为什么我无法从两个运动中进行骨骼跟踪?
PS我正在使用Kinect for Windows SDK 1.5
谢谢!
对于kinect开发,是否有驱动程序或dll通过使用网络摄像头或其他工具来替代物理kinect传感器?还是您必须拥有kinect传感器?我没有x360,而且我不太喜欢只购买kinect传感器的想法...
我正在尝试将单个ColorSpacePoint映射到Kinect SDK 2.0中的DepthSpacePoint。
如果了解Kinect提供的三种坐标系统类型,这应该是一个非常简单的映射。ColorSpace和DepthSpace都是二维空间,它们具有不同的分辨率和宽高比。
但是,我无法确定CoordinateMapper中的哪个函数将接收特定的ColorSpacePoint并返回关联的DepthSpacePoint。
有人能对此事有所启发吗?
谢谢!
我已经成功地使用Kinect提取了点云,但是无法继续保存它或将下一个捕获的帧添加到其中。到目前为止,这是我发现的内容,我希望对其进行增强,以便可以将多个点云存储在一个文件中,以生成大型3D地图。
#include "main.h"
#include "glut.h"
#include <cmath>
#include <cstdio>
#include <Windows.h>
#include <Ole2.h>
#include <Kinect.h>
// We'll be using buffer objects to store the kinect point cloud
GLuint vboId;
GLuint cboId;
// Intermediate Buffers
unsigned char rgbimage[colorwidth*colorheight*4]; // Stores RGB color image
ColorSpacePoint depth2rgb[width*height]; // Maps depth pixels to rgb pixels
CameraSpacePoint depth2xyz[width*height]; // Maps depth pixels to 3d coordinates
// Kinect Variables
IKinectSensor* sensor; // Kinect sensor
IMultiSourceFrameReader* reader; // Kinect data source
ICoordinateMapper* mapper; // Converts between depth, …Run Code Online (Sandbox Code Playgroud)