我想知道是否有办法将我从kinect获得的图像旋转90度,这样我就可以挂起kinect verticaly,就像这样仍然跟踪身体?
因为当你垂直挂起它现在它没有跟踪任何东西,我认为这是正常的,因为它只是编程在垂直时寻找尸体,但有没有办法解决这个问题? / p>
我试图找到一种旋转WriteableBitmap的方法,就像我在网上找到了一些例子,但没有任何运气。我想如果我应该做任何事我应该在代码的这一部分中做到:
private void Reader_ColorFrameArrived(object sender,ColorFrameArrivedEventArgs e) {
// ColorFrame is IDisposable
using (ColorFrame colorFrame = e.FrameReference.AcquireFrame())
{
if (colorFrame != null)
{
FrameDescription colorFrameDescription = colorFrame.FrameDescription;
using (KinectBuffer colorBuffer = colorFrame.LockRawImageBuffer())
{
this.colorBitmap.Lock();
// verify data and write the new color frame data to the display bitmap
if ((colorFrameDescription.Width == this.colorBitmap.PixelWidth) && (colorFrameDescription.Height == this.colorBitmap.PixelHeight))
{
colorFrame.CopyConvertedFrameDataToIntPtr(
this.colorBitmap.BackBuffer,
(uint)(colorFrameDescription.Width * colorFrameDescription.Height * 4),
ColorImageFormat.Bgra);
this.colorBitmap.AddDirtyRect(new Int32Rect(0, 0, this.colorBitmap.PixelWidth, this.colorBitmap.PixelHeight));
}
this.colorBitmap.Unlock();
}
}
}
}
但我无法弄清楚如何使轮换发生。
谢谢!
答案 0 :(得分:1)
处理彩色图像对您没有帮助,因为Body Tracking算法仅基于深度数据。
此外,如果您需要使用Microsoft Kinect SDK,则无法“更改”算法和传递给它的数据。实际上,您需要在将深度图像传递到人体跟踪器之前对其进行旋转,这对于此SDK来说根本无法实现。
我不确定是否可以使用其他框架完成此操作。但是,您可以做的是将一些镜头放在设备使用的镜头前,以旋转图像。或者你可以将设备拆开并尝试将镜头旋转90度......这取决于你。
希望这有帮助。