2015-07-13 1 views
0

Я использую kinectv2 для удаления фона. Я использую следующую ссылку для удаления фона.Kinect V2 удаление удалять трек только один человек

http://www.codeproject.com/Articles/758344/Background-removal-using-Kinect-green-screen-effec

Теперь этот код отслеживает все люди в фоновом режиме, нужно только отслеживать только один человек в фоновом режиме. Не могли бы вы помочь мне отслеживать только одного человека в фоновом режиме.

Кроме того, мне нужно удалить искажение при отслеживании человека.

+0

Почему это проблема, связанная с отслеживанием нескольких людей? Будет ли несколько человек в рамке, но вы хотите удалить все, кроме одного из них? –

+0

Да, хотя в рамке много людей, мне просто нужно отобразить только одного человека с удалением фона Kinect. –

ответ

0

Это должно быть так же просто, как изменение логики в вашем примере, чтобы проверить для конкретного значения индекса тела вместо любого человека:

byte player = _bodyData[depthIndex]; 

// Check whether this pixel belong to a human!!! 
if (player != 0xff) 

Из documentation:

значений пикселей в этот кадр представляет собой 8-разрядные целые числа без знака, где 0-5 сопоставляются непосредственно с индексом BodyData в BodyFrame. Значения, превышающие значение, полученное от BodyCount, указывают, что пиксель является частью фона, не связанным с отслеживаемым телом.

Если вы хотите посмотреть различные BodyIndexes, проект образца BodyBasics присваивает каждому телу другой цвет. Но ваши изменения могут быть столь же просто, как:

if (player == 0) 

Но это может потребовать выбор пользователя для отображения тела (0-5).