aihot  2017-04-28 00:04:00  OpenCV |   查看评论   
  •             uchar *pBuffer = (uchar*)(LockedRect.pBits) + i * LockedRect.Pitch;  
  •             USHORT *pBufferRun = (USHORT*) pBuffer;   
  •               
  •             for (int j=0; j<depthImage.cols; j++)   
  •             {   
  •                 int player = pBufferRun[j]&7;   
  •                 int data = (pBufferRun[j]&0xfff8) >> 3;   
  •                    
  •                 uchar imageData = 255-(uchar)(256*data/0x0fff);   
  •                 q.rgbBlue = q.rgbGreen = q.rgbRed = 0;   
  •    
  •                 switch(player)   
  •                 {   
  •                     case 0:     
  •                         q.rgbRed = imageData / 2;     
  •                         q.rgbBlue = imageData / 2;     
  •                         q.rgbGreen = imageData / 2;     
  •                         break;     
  •                     case 1:      
  •                         q.rgbRed = imageData;     
  •                         break;     
  •                     case 2:     
  •                         q.rgbGreen = imageData;     
  •                         break;     
  •                     case 3:     
  •                         q.rgbRed = imageData / 4;     
  •                         q.rgbGreen = q.rgbRed*4;  //这里利用乘的方法,而不用原来的方法可以避免不整除的情况   
  •                         q.rgbBlue = q.rgbRed*4;  //可以在后面的getTheContour()中配合使用,避免遗漏一些情况   
  •                         break;     
  •                     case 4:     
  •                         q.rgbBlue = imageData / 4;    
  •                         q.rgbRed = q.rgbBlue*4;     
  •                         q.rgbGreen = q.rgbBlue*4;     
  •                         break;     
  •  

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自Kinect开发学习笔记之彩色、深度、骨骼和用户抠图结合

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]