KinectV2의 깊이 데이터를 Unity-Script의 색상 공간에 매핑하려고합니다. 나는 마이크로 소프트가 제공하는 통일의 예에서 살펴 보았다 따라서Kinect v2 + Unity -> MapDepthFrameToColorSpaceUsingIntPtr
) = 느릅 나무는 허용되지 않습니다 - 매퍼 기능을
_sensor.CoordinateMapper.MapDepthFrameToColorSpace(_depthData, _colorSpacePoints)
좌표 일반적인 예상대로 그것은 작동하지만 11 내 프레임 속도를 감소 포인터로 작업하는 매핑에 대해 조각을 발견했습니다.
var pDepthData = GCHandle.Alloc(pDepthBuffer, GCHandleType.Pinned);
var pDepthCoordinatesData = GCHandle.Alloc(m_pDepthCoordinates, GCHandleType.Pinned);
m_pCoordinateMapper.MapColorFrameToDepthSpaceUsingIntPtr(
pDepthData.AddrOfPinnedObject(),
(uint)pDepthBuffer.Length * sizeof(ushort),
pDepthCoordinatesData.AddrOfPinnedObject(),
(uint)m_pDepthCoordinates.Length);
pDepthCoordinatesData.Free();
pDepthData.Free();
나의 필요에 상응하는 방법도 있습니다. 나는 pDepthBuffer는 메서드 호출 및 m_pColorSpacePoints에서 유효한 데이터를 초기화하고 임은 여전히 1408 SDK 작업 (MSDN 설명서에서 권장) pDepthBuffer와 같은 길이가
var pDepthData = GCHandle.Alloc(pDepthBuffer, GCHandleType.Pinned);
var pColorData = GCHandle.Alloc(m_pColorSpacePoints, GCHandleType.Pinned);
m_pCoordinateMapper.MapDepthFrameToColorSpaceUsingIntPtr(
pDepthData.AddrOfPinnedObject(),
pDepthBuffer.Length * sizeof(ushort),
pColorData.AddrOfPinnedObject(),
(uint)m_pColorSpacePoints.Length * sizeof(float) * 2);
pColorData.Free();
pDepthData.Free();
MapDepthFrameToColorSpace의 포인터 버전을 시도 번역. 함수 다음의 결과는 빈/음수 반올림 부동 값이 있고 유효한 ColorSpacePoint가없는 배열입니다. 오류 없음 - 메시지. 제안 사항이 있으십니까?