Kinect开发中的数学知识与应用
1. 位操作在Kinect开发中的应用
在Kinect应用开发里,位操作是一项关键技术,常见的位操作包括按位与(AND)、按位非(NOT,即取反)和位移动(Shifting)。
1.1 按位与(AND)操作提取玩家索引值
按位与操作常用于提取玩家索引值。SDK为开发者提供了一个位掩码(bit mask),即 DepthImageFrame 类中定义的常量 PlayerIndexBitMask ,其值为7(二进制表示为0000 0111)。当将这个位掩码应用于深度像素数据时,它会屏蔽除玩家索引位之外的所有位。以下是提取玩家索引值的示例代码:
for(int i = 0; i < pixelData.Length; i++)
{
playerIndex = pixelData[i] & DepthImageFrame.PlayerIndexBitMask;
// 对玩家索引值进行操作
}
1.2 按位非(NOT)操作反转深度位
在处理深度位时,按位非操作可用于反转位。在C#中,按位非操作符是 ~ (波浪号)。深度图像帧中的深度值范围是0到4095,如果直接使用这些位来创建图像,灰度会更接近黑色。而简单地反转这些位,会使灰度更接近白色。在16位的颜色调色板中,黑色是0,65535是白色,当所有16位都置为1时,整数值就是65535,它是0的补码。
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



