2015-02-05 2 views
0

Я хотел бы сделать скелетное слежение одновременно с двумя камерами kinect в SkeletalViewer и получить результат скелета. Как я понимаю, Nui_Init() обрабатывает только потоки для первого Kinect (который, я полагаю, index = 0). Однако я мог бы выполнить два отслеживания скелета одновременно с тем, что я хотел бы одновременно выводить их результат в два текстовых файла.Как инициализировать два Kinect одновременно? (SkeletalViewer)

(например, для Kinect 0 выход на «cam0.txt» в то время как Kinect 1 выход на «cam1.txt»)

ли имеет опыт в таком случае или в состоянии помочь любому?

С уважением,

Eva

PS: я прочитал это из Kinect SDK состояния документации, что:

Если вы используете несколько датчиков Kinect, скелет отслеживания работает только на первой устройство, которое вы инициализируете. Чтобы переключить устройство, используемое для отслеживания, неинициализируйте старый и инициализируйте новый.

Возможно ли, если я хочу получить координаты одновременно? Или даже если приобретать один за другим, как я могу их назвать отдельно? (поскольку я понимаю, что индекс активного Kinect будет 0, который я не могу их отличить).

ответ

0

Я предполагаю, что вы используете пример MS SkeletalViewer. Проблема с их SkeletalViewer заключается в том, что они тесно связаны с дисплеем и отслеживанием скелета. Это затрудняет изменение.

Использование нескольких датчиков kinect должно быть возможным, вам просто нужно инициализировать все датчики одинаково. Лучше всего было бы определить класс датчиков для обертывания датчиков kinect. Если вам не нужен дисплей, вы можете просто написать новую программу. Это немного работает, но не так много, вы можете получить полностью рабочую программу для нескольких датчиков менее чем в 100 линиях. Если вам нужен дисплей, вы можете переписать пример SkeletalViewer, чтобы использовать свой класс датчиков, но это более утомительно.

+0

Считаете ли вы возможным это сделать, изменив SkeletalViewer и отобразив два значения глубины цвета, но не отслеживая скелет и не запустив одновременно два Kinect, чтобы я мог одновременно получать два набора данных? –

+0

@EvaChew Да, вы можете нарисовать что угодно. Вам просто нужно правильно инициализировать и обработать два кинца. Используя SkeletalViewer, вам нужно будет изменять везде, где используется «m_pNuiSensor», и, возможно, больше, потому что вам нужно одновременно управлять двумя «INuiSensor». Чтобы понять, что нужно изменить, вам нужно понять, как работает SkeletalViewer. Это непросто, потому что он использует только WinAPI и WinForm, что делает его сложнее, если вы не знаете. Поэтому было бы проще написать собственный короткий класс датчиков и использовать более простую оконную/графическую библиотеку, такую ​​как SDL или Qt. – ElderBug

+0

Привет, я потратил некоторое время на то, чтобы выяснить, какой класс коротких датчиков вы имеете в виду. Я думаю, что это важно для инициализации двух датчиков. Но проблема заключается в первоначальном SKeletalViewer, есть много функций, которые я не уверен, что только я их принимал, код будет работать хорошо или нет? Или вы не хотите дать представление о классе коротких датчиков? (добавить в первоначальный проект?) –