Использование 2 Kinects для обнаружения - PullRequest
0 голосов
/ 19 января 2012

В настоящее время я работаю над программой отслеживания скелета и моей средой это большая область, и я должен использовать более 1 Kinect, чтобы покрыть всю область. Тем не менее, я не могу NuiInitialize 2 kinects одновременно. Обратите внимание, что я использую Microsoft KinectSDK Beta2.

Может ли кто-нибудь помочь мне с этим?

Также вот мой код C ++.

 int no_kinetics =0;
static INuiInstance*  kinect_0=NULL;  
static INuiInstance*  kinect_1=NULL; 
HRESULT hr, hr0, hr1, hr_init_0, hr_init_1;

    hr = MSR_NUIGetDeviceCount(&no_kinetics);

    hr_init_0 = MSR_NuiCreateInstanceByIndex(0, &kinect_0);

    hr0 = kinect_0->NuiInitialize(NUI_INITIALIZE_FLAG_USES_SKELETON);   

    hr_init_1 = MSR_NuiCreateInstanceByIndex(1, &kinect_1);
    hr1 = kinect_1->NuiInitialize(NUI_INITIALIZE_FLAG_USES_SKELETON);   

и код ошибки был -2097086294

Ответы [ 2 ]

0 голосов
/ 19 января 2012

Вы можете написать «серверную» программу, которая использует kinect для отслеживания движений и отправляет точки через tcp или udp. Таким образом, вы можете работать с большим количеством устройств, на которых работает больше серверов. Ваша заявка станет «клиентом», получающим отслеженные баллы с сервера. Если kinect API не позволяет вам выбрать, какой kinect использовать, вы всегда можете использовать два компьютера.

0 голосов
/ 19 января 2012

У меня были те же проблемы, только то, что я использую C #. Я получаю сообщение об ошибке при попытке инициализировать оба Kinects с помощью глубины + player_info или отслеживания скелета.

Сэмплы SDK, поставляемые с официальным SDK, никогда этого не делают. Кажется, что существует своего рода замок, который избегает инициализации двух кинэктов. Чего я до сих пор не знаю, такова причина такого поведения.

Попробуйте инициализировать один с отслеживанием скелета, а другой с простой глубиной (без информации об игроке) и дайте мне знать, если это не сработает для вас. Тогда это будет означать, что мы ближе узнаем, является ли это обычным / ожидаемым поведением.

РЕДАКТИРОВАТЬ: я нашел этот пост на MSDN, партнер MS там, говорит: «Обратите внимание, что существуют ограничения для видео API, такие как отслеживание скелета и индексы глубины + игрока будут работать только для устройства по умолчанию на индекс 0. Они описаны в руководстве по программированию: http://bit.ly/KinectSDKProgrammingGuide"

См: http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/3e72f577-b0a7-4621-9015-3d95eff3a857/

...