티스토리 뷰



생각해보니까 이전에 구했던 좌표점이 잘 못 구해진 값이었습니다. NuiTransformDepthImageToSkeleton()의 인자는 pixelx와 pixely값, 그리고 실제의 depth값이 들어갑니다. 그걸 구하려면 해당 pixel에서의 depth를 구해야 됬었는데 저도 코드에 대한 이해가 부족해서 그냥 넣으면 되겠지 하고 넣었습니다. 그래서 지난번 동영상에서는 z값이 0.105에서 변하지 않았습니다. 그걸 수정하기 위해서 원의 중심점을 구한후 전역변수로 선언한 CvPoint에 넣어서 depthStream을 읽어올때 조건문을 삽입하면됩니다. 이때 조건은 픽셀을 읽어올때의 포인트가 CvPoint랑 같게 하면 되겠지요. 어차피 한 픽셀에 depthStream이 담겨져 있을 것이고 그안에 depthValue와 player index가 들어있을테니까요. 아무튼 수정한 결과입니다.



추가적으로 buffer overrun 현상도 발생했었는데 그 문제도 해결했습니다. 보니까 배열의 크기가 들어가는 값보다 작게 잡혀있어서였습니다. 혹시 이런 에러 나시는 분은 종료시에 포인터해제가 잘되었는지, 배열의 크기가 적당하게 선언되었는지를 꼼꼼하게 확인해보시기 바랍니다.

댓글