첫 번째 사람을 추적하고이 사람의 몸만 사용하고 싶습니다.C#에서 Kinect v2로 한 사람/몸만 추적하는 방법
기본적으로 한 사람을 추적하고 그 사람 뒤에서 걷는 사람들이 있거나이 사람을보고있을 때, 움직이면 kinect는 다른 사람을 인식해서는 안됩니다.
C#의 SDK 2.0 "Body Basics-WPF"의 샘플 코드를 사용하고 있습니다. 내 목표는 단 하나의 사람을 형성하는 몇 개의 관절 (성공적으로 완료) 만 인식하는 것입니다. Kinect v1을 어떻게 만들 수 있는지는 실감이지만 Kinect v2는 없습니다. 여기에 코드 :
private void Reader_FrameArrived(object sender, BodyFrameArrivedEventArgs e)
{
bool dataReceived = false;
using (BodyFrame bodyFrame = e.FrameReference.AcquireFrame())
{
if (bodyFrame != null)
{
if (this.bodies == null)
{
this.bodies = new Body[bodyFrame.BodyCount];
}
bodyFrame.GetAndRefreshBodyData(this.bodies);
dataReceived = true;
}
}
if (dataReceived)
{
using (DrawingContext dc = this.drawingGroup.Open())
{
dc.DrawRectangle(Brushes.Black, null, new Rect(0.0, 0.0, this.displayWidth, this.displayHeight));
int penIndex = 0;
foreach (Body body in this.bodies)
{
Pen drawPen = this.bodyColors[penIndex++];
if (body.IsTracked)
{
this.DrawClippedEdges(body, dc);
IReadOnlyDictionary<JointType, Joint> joints = body.Joints;
Dictionary<JointType, Point> jointPoints = new Dictionary<JointType, Point>();
foreach (JointType jointType in joints.Keys)
{
if (jointType == JointType.ShoulderRight || jointType == JointType.ElbowRight || jointType == JointType.WristRight || jointType == JointType.HandRight ||
jointType == JointType.ShoulderLeft || jointType == JointType.ElbowLeft || jointType == JointType.WristLeft || jointType == JointType.HandLeft)
{
CameraSpacePoint position = joints[jointType].Position;
if (position.Z < 0)
{
position.Z = InferredZPositionClamp;
}
DepthSpacePoint depthSpacePoint = this.coordinateMapper.MapCameraPointToDepthSpace(position);
jointPoints[jointType] = new Point(depthSpacePoint.X, depthSpacePoint.Y);
}
}
this.DrawBody(joints, jointPoints, dc, drawPen);
}
}
this.drawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, this.displayWidth, this.displayHeight));
}
}
}
안녕하세요. this.bodies = new Body [1]이 작동하지 않습니다. 그러나 나는 한 사람을 추적 할 다른 방법을 찾았습니다. HDFaceBasics-WPF 및 방법 FindClosestBody를 확인하십시오. – Ozzy