1
私はSDK 1.8でKinect v1を使用しています。データをfaceTracker.Track()
メソッドに渡す必要があります。Kinect Facetracker.track()メソッドを理解する
しかし、track()
のコンストラクタでは、最後にスケルトンパラメータを要求しています。 しかし、スケルトンデータをスケルトンオブジェクトに直接取り込むことはできません。これはデータ配列として提供されます。
このfaceTracker.Track()
メソッドにデータを渡すには、どのトラックメソッドが要求されていますか?
以下は私が試した方法です。
using (SkeletonFrame skeletonFrame = allFramesReadyEventArgs.OpenSkeletonFrame())
{
if (skeletonFrame != null && this.skeletonData != null) // check that a frame is available
{
skeletonData = new Skeleton [newSensor.SkeletonStream.FrameSkeletonArrayLength];
skeletonFrame.CopySkeletonDataTo(this.skeletonData); // get the skeletal information in this frame
this.skeletonData = new Skeleton[this.newSensor.SkeletonStream.FrameSkeletonArrayLength];
}
}
トラック法
if (faceTracker == null)
{
try
{
faceTracker = new FaceTracker(sensorChooser.Kinect);
}
catch (InvalidOperationException)
{
//write something
}
if (faceTracker != null)
{
FaceTrackFrame frame = faceTracker.Track(
sensorChooser.Kinect.ColorStream.Format,
colorImageData,
sensorChooser.Kinect.DepthStream.Format,
colorPixels,
skeletonData);
}
}
この
とfollwingがオンラインショップSDK
public FaceTrackFrame Track(
ColorImageFormat colorImageFormat,
byte[] colorImage,
DepthImageFormat depthImageFormat,
short[] depthImage,
Skeleton skeletonOfInterest)
{
return this.Track(colorImageFormat, colorImage, depthImageFormat, depthImage, skeletonOfInterest, Rect.Empty);
}