2014-11-27 1 views
1

방금 ​​Kinect 프로그래밍을 시작 했으므로 동시에 RGB 및 IR 이미지를 표시 할 수있어서 기쁩니다.Kinect Frames를 스크린 샷으로 저장

이제 스크린 샷 버튼을 사용하여 필요할 때마다 각 프레임을 저장할 수 있습니다. (샘플 SDK와 동일한 절차)

이제 이러한 프레임을 지속적으로 저장하려면 어떻게해야할까요?

저는 C# 및 Kinect 프로그래밍 일반을 처음 사용합니다. 그래서 누구든지 나를 도울 수 있습니까?

감사합니다.

답변

1

는 시도 :

private unsafe void saveFrame(Object reference) 
{ 
    MultiSourceFrame mSF = (MultiSourceFrame)reference; 

    using (var frame = mSF.DepthFrameReference.AcquireFrame()) 
    { 
     if (frame != null) 
     { 
      using (Microsoft.Kinect.KinectBuffer depthBuffer = frame.LockImageBuffer()) 
      { 
       if ((frame.FrameDescription.Width * frame.FrameDescription.Height) == (depthBuffer.Size/frame.FrameDescription.BytesPerPixel)) 
       { 
        ushort* frameData = (ushort*)depthBuffer.UnderlyingBuffer; 
        byte[] rawDataConverted = new byte[(int)(depthBuffer.Size/2)]; 


        for (int i = 0; i < (int)(depthBuffer.Size/2); ++i) 
        { 
         ushort depth = frameData[i]; 
         rawDataConverted[i] = (byte)(depth >= frame.DepthMinReliableDistance && depth <= frame.DepthMaxReliableDistance ? (depth) : 0); 
        } 

        String date = string.Format("{0:hh-mm-ss}", DateTime.Now); 
        String filePath = System.IO.Directory.GetCurrentDirectory() + "/test/" +date+".raw"; 
        File.WriteAllBytes(filePath, rawDataConverted); 
        rawDataConverted = null; 

       } 
      } 
     } 
    } 
} 

당신은 여기 좀 봐 : Saving raw detph-data

관련 문제