我想提出一个程序的SDK,在检测到用户时,该方案利用了他们遵循的骨架。 我最近看到广告在我的Xbox,游戏的Nike + Kinect的 ,看到它是如何显示的字符做别的事情一样的副本:
http://www.swaggerseek.com/wp-content/uploads/2012/06/fcb69__xboxkinect1.jpg
要么
http://www.swaggerseek.com/wp-content/uploads/2012/06/fcb69__xboxkinect.jpg
我可以创建只检测到的人(没有任何背景的)的点云表述? 提前致谢!
编辑
使用这个网站 ,我可以创建点云,但仍然围绕着人的身体不能裁剪。
它看起来并不像他们展示一个完整的点云,而是蓝色的阴影强度图。 这可以从Kinect的深度图像的Windows SDK来完成。 你要找的是玩家指数。 这是在深度图像的每个像素的提供的比特。 为了让玩家索引位,你也必须让你的初始化代码骨骼流。
因此,这是我会怎么做。 我修改的Kinect的Windows SDK的一个快速入门发现这里加载它并进行以下修改:
//Change image type to BGRA32
image1.Source =
BitmapSource.Create(depthFrame.Width, depthFrame.Height,
96, 96, PixelFormats.Bgra32, null, pixels, stride);
//hardcoded locations to Blue, Green, Red, Alpha (BGRA) index positions
const int BlueIndex = 0;
const int GreenIndex = 1;
const int RedIndex = 2;
const int AlphaIndex = 3;
//get player and depth at pixel
int player = rawDepthData[depthIndex] & DepthImageFrame.PlayerIndexBitmask;
int depth = rawDepthData[depthIndex] >> DepthImageFrame.PlayerIndexBitmaskWidth;
//check each pixel for player, if player is blue intensity.
if (player > 0)
{
pixels[colorIndex + BlueIndex] = 255;
pixels[colorIndex + GreenIndex] = intensity;
pixels[colorIndex + RedIndex] = intensity;
pixels[colorIndex + AlphaIndex] = 100;
}
else
{
//if not player make black and transparent
pixels[colorIndex + BlueIndex] = 000;
pixels[colorIndex + GreenIndex] = 000;
pixels[colorIndex + RedIndex] = 000;
pixels[colorIndex + AlphaIndex] = 0;
}
我喜欢用测试的颜色,因为它仍然提供了右侧的深度观察者这个例子。 我重视的下方运行此效果的图像:
到左侧的图像是强度地图略带颜色的像素电平的强度数据。
希望帮助大卫·贝茨
你可以做点一个非常简单的三角测量。 检查本教程:
http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_basics.php
检查结果:
这是不可能自动与官方的Kinect SDK。 但它在所谓的OpenNI替代SDK实现,还有你可以得到一套哪个用户由点组成。 如果你不想使用它,我可以建议,而从背景中分离用户的简单方法。 因为你知道的用户的z位置可以只取分,其中Z是从0到userZ +表示主体的厚度一定的价值。
另一个想法是走过去的点云从一些接头(或关节)开始,只服用,如果距离平稳变化,因为如果你把背景点,边境的身体和未来体点的距离下降将很容易察觉点。 这里的问题是,你将开始计数楼作为身体的一部分,因为过渡有光滑的,所以你应该使用最低(脚踝)联合验证。
或者你可以使用PCL(分割http://docs.pointclouds.org/trunk/group__segmentation.html ),但如果脚楼的问题就解决了那里,我不知道。 看起来他们是很好的与它( http://pointclouds.org/documentation/tutorials/planar_segmentation.php )。
对于Kinect的Windows SDK的v1.5版有可能对这个被修改的样本。
样品名称:深度D3D或depthwithcolor,D3D。
他们都做点云。