2012-08-10 1 views
2

Kinect 카메라의 색상 픽셀에 해당하는 깊이를 최대한 빨리 얻을 수있는 방법을 찾고 있습니다.Kinect SDK의 색상 위치에서 깊이 확인

MapDepthFrameToColorFrame 함수를 찾았습니다. 그러나 그것은 단지 특정 깊이 위치에서 색상을 제공합니다, 나는 그 반대를 원합니다.

내가 원하는 이유는 RGB 이미지에서 위치를 클릭하고 해당 픽셀의 위치를 ​​얻을 수 있기 때문입니다.

MapDepthFrameToColorFrame의 모든 결과를 반복하는 것보다 빠르게 수행 할 수 있습니까?

답변

6

여기에서의 문제는 카메라와 IR 이미 터의 위치 때문에 모든 색상 픽셀에 깊이가 할당되는 것은 아닙니다. 키 넥트 (Kinect)를 마주보고 왼손을 가슴 앞쪽으로 들고있을 경우, 손이 IR 이미 터를 차단하기 때문에 깊이 데이터가없는 가슴 부분이 있습니다. IR 카메라가 RGB 카메라에 더 가깝기 때문에 일반적으로 깊이에서 RGB로 동일한 문제가 발생하지 않습니다. Kinect가 IR을 볼 수 있으면 RGB를 볼 수 있습니다.

질문에 대답하십시오 : 나는 RGB 인덱스가 깊이 지수를 계산할 수있는 충분한 정보를 제공하지 않기 때문에이 방법을 알지 못합니다. 언급 한 것처럼 MapDepthFrameToColorFrame을 사용하고 루핑을 시도 했습니까? 미치광이 (또는 컴퓨터)를 클릭하지 않는 한, 응용 프로그램이이 문제를 제대로 처리 할 수 ​​있을지에 대해 기꺼이 생각합니다. 내가 문제를 일으킬 때까지 이것을 최적화하려고 시간을 낭비하지 않을 것이다.

원하는 경우 함수에서 반환 한 색상 좌표의 하위 집합을 확인하여 루프의 크기를 줄일 수 있습니다. RGB 픽셀 (x, y)의 좌표를 가져온 다음 깊이 좌표를 (x, y)에 가까운 곳에서 확인하십시오. 아마도 (x-20, y-20)에서 (x + 20, y + 20)까지입니다. 그것이 그것을 찾지 못하면, 나머지 배열을 검사 할 수 있습니다. 이 부분을 조금 테스트하면 요청한 픽셀 주위를 체크 할 수있는 좋은 범위를 찾을 수 있습니다. 많은 루핑을하지 않아도 대부분의 시간에 히트를 얻을 수 있습니다.

+0

좋은 설명에 감사드립니다. 모든 프레임 업데이트 (~ 30/초)에서 업데이트되기 때문에이 작업을 빨리 처리해야합니다. 그러나 "픽셀 근처"를 사용하는 팁이 효과가있었습니다! – user1590336

+4

@user 질문에 답한 경우 동의하십시오! –