none
请问各位老师,怎样在背景变换里获取黑白图像呢? RRS feed

  • 问题

  • 我在sdk附带的基础程序-彩色图象获取里做了以下更改,使获取的图像黑白化:

           void kinectSensor_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e)

            {
                using (ColorImageFrame frame = e.OpenColorImageFrame())
                {
                    if (frame != null)
                    {
                        byte[] pixelData = new byte[frame.PixelDataLength];
                        frame.CopyPixelDataTo(pixelData);
             更改:【           for (int i = 0; i < pixelData.Length; i += frame.BytesPerPixel)
                        {
                            byte gray = Math.Max(pixelData[i], pixelData[i + 1]);
                            gray = Math.Max(gray, pixelData[i + 2]);
                            if (gray >  125) gray = 255;
                            else gray = 0;
                            pixelData[i] = gray;
                            pixelData[i + 1] = gray;
                            pixelData[i + 2] = gray;
                        }                                                                                                          】
                        ColorImageElement.Source = BitmapImage.Create(frame.Width, frame.Height, 96, 96,PixelFormats.Bgr32, null, pixelData,frame.Width * frame.BytesPerPixel);

                    }
                }

    要怎样才能把这个片段整合到BackgroundRemovalBasics(背景变化)里面去呢?

    那里面没有把图像赋值给数组,我想新建一个byte【】又提示我格式不同不能赋值。。。

    2014年12月7日 8:33

全部回复

  • 主要问题是我会修改byte数组,但是BackgroundRemovalBasics(背景变化)里面用的是var。。。我不知道怎么改
    2014年12月7日 14:34
  • var 后面的数据 你应该可以查看格式的 你可以在最开头设置变量的时候 先设置一个这个格式的数据 例如 你在设置变量的时候先设置一个byte数组 然后在BackgroundRemovalBasics(背景变化)里面修改他的数据就可以了

    2014年12月28日 15:59