2012-03-07 2 views
2

나는 콘솔 프로그램을 만들면 어디 사람이 위 또는 아래로 걷고 있는지 식별 할 수있는 문자열을 출력해야합니까?KINECT : 사용자가 Kinect를 사용하여 위아래로 걷는 것을 확인하는 방법은 무엇입니까?

KINECT에 이것을 사용하는 예를 알고 있습니까?

저는 SDK를 사용하여 다소 새로운 것 같습니다. 미리 감사드립니다. 사용자가 준비 될 때 footright에서 위치 .Take 사람의 초기 위치를 저장 (이, 나는이에게 물어> -

+3

위로 또는 아래로 무엇? 계단? 진입로? – Jay

답변

7

골격 관절의 위치 (https://naokinect.wordpress.com/2012/02/06/kinectcomment-recuperer-les-coordonnees-des-joints-dun-squelette/)

1을 얻기 위해 내 블로그를 확인 사용자는 예를 들어) 함수의 머리의 전면에 오른손을 넣어 :

함수 "checkuserisready를"

if(_coord[4] != null && _coord[0] != null && _coord[8] != null){ 
if (_coord[4].X <= _coord[8].X + 0.1 && _coord[4].X >= _coord[8].X - 0.1 
&& _coord[4].Y <= _coord[8].Y+0.1 && _coord[4].Y >= _coord[8].Y-0.1) 
{ 
_initPos = _coord[9]; 

2 -> "checkuserisready"가상 선 (가상 어느 것 만들 t 앞과 뒤에서 그는 사용자) :

float _anteriorSafeLine = (float)_initPos.Z - 0.2f; 
float _posteriorSafeLine = (float)_initPos.Z + 0.2f; 

3 -> 사용자가 아래의 코멘트 (뒤로 이동

편집에 루프에서 posteriorsafeline와

if ((_anteriorControlLine <= _coord[9].Z) && (_coord[9].Z <= _anteriorSafeLine)){ 

//move forward 

} 

같은 일을 라인을 초과하는 경우 확인) :

각 _coord는 skeleton joint입니다. 그것의 단지 Vector3 배열.

:

_coord[0] = new Vector3(joint.Position.X,joint.Position.Y,joint.Position.Z); 

//0 -> HandLeft 
//1 -> ElbowLeft 
//2 -> ShoulderLeft 
//3 -> hipLeft 
//4 -> HandRight 
//5 -> ElbowRight 
//6 -> ShoulderRight 
//7 -> hipRight 
//8 -> Head 
//9 -> FootRight 
+0

의심스러운 점은 checkuserisready 함수의 숫자는 무엇입니까? 그들은 신체의 관절입니까? 제발, 나는 그 숫자를 혼란스럽게하고있다. –

관련 문제