не очень знаком с с ++, но я пытаюсь отправить некоторые данные в эскиз Java / обработки. Проблема в том, что я не знаю, каково количество пользователей для Open Frameworks ofOpenNI. Я хочу посчитать до 3 пользователей через мою камеру Kinect. Рассчитайте среднее значение для каждого пользователя и отправьте данные в мой эскиз обработки для дальнейшего использования.
Проблема в том, что иногда я получаю бесконечное число второго пользователя. Может кто-нибудь сказать мне, почему?
Использование OpenNISample007.xcodeproj
Я адаптировал это в скрипт:
if (isMasking) drawMasks();
for (int i=1; i< recordUser.getNumberOfTrackedUsers()+1; i++){
if (isCloud) drawPointCloud(&recordUser, i); // 0 gives you all point clouds; use userID to see point clouds for specific users
}
тогда я использую информацию pointCloud для отправки среднего через OSC
float positionsX ;
float positionsBegin;
int counter = 0;
for(int y = 0; y < h; y += step) {
for(int x = 0; x < w; x += step) {
ofPoint pos = user_generator->getWorldCoordinateAt(x, y, userID);
if (pos.z == 0 && isCPBkgnd) continue; // gets rid of background -> still a bit weird if userID > 0...
ofColor color = user_generator->getWorldColorAt(x,y, userID);
// glColor4ub((unsigned char)color.r, (unsigned char)color.g, (unsigned char)color.b, (unsigned char)color.a);
glVertex3f(pos.x, pos.y, pos.z);
positionsX+=pos.x;
if (x == 1){
positionsBegin = pos.x;
}
counter++;
}
}
float average = positionsX/counter;
cout<<"Average:"<<average<<endl;
//cout<<"positionsBegin:"<<positionsBegin<<endl;
ofxOscMessage m;
m.setAddress( "/persons" );
m.addIntArg( userID );
m.addFloatArg(average);
sender.sendMessage( m );