当前位置: 首页>>代码示例>>C#>>正文


C# ColorImageFrame.Dispose方法代码示例

本文整理汇总了C#中Microsoft.Kinect.ColorImageFrame.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# ColorImageFrame.Dispose方法的具体用法?C# ColorImageFrame.Dispose怎么用?C# ColorImageFrame.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Microsoft.Kinect.ColorImageFrame的用法示例。


在下文中一共展示了ColorImageFrame.Dispose方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ColorImageFrameToBitmap

        private static Bitmap ColorImageFrameToBitmap(ColorImageFrame colorFrame)
        {
            byte[] pixelBuffer = new byte[colorFrame.PixelDataLength];
            colorFrame.CopyPixelDataTo(pixelBuffer);

            Bitmap bitmapFrame = new Bitmap(colorFrame.Width, colorFrame.Height, PixelFormat.Format32bppRgb);
            BitmapData bitmapData = bitmapFrame.LockBits(new Rectangle(0, 0, colorFrame.Width, colorFrame.Height), ImageLockMode.WriteOnly, bitmapFrame.PixelFormat);

            IntPtr intPointer = bitmapData.Scan0;
            Marshal.Copy(pixelBuffer, 0, intPointer, colorFrame.PixelDataLength);

            bitmapFrame.UnlockBits(bitmapData);
            colorFrame.Dispose();

            return bitmapFrame;
        }
开发者ID:siracoj,项目名称:signtolearn,代码行数:16,代码来源:KinectVideoStream.cs

示例2: setImage

        /// <summary>
        /// Sets the desired picture box image.  Can do so for up to 4 images.
        /// </summary>
        /// <param name="imageIndex">The index of the picture box image to set.</param>
        /// <param name="frame">The Kinect's color image frame to use.</param>
        void setImage(int imageIndex, ColorImageFrame frame)
        {
            // Check that the frame is not empty.
            if (frame != null)
            {
                // Create an array of bytes to hold the data.
                byte[] pixelData = new byte[frame.PixelDataLength];
                // Copy the pixel data to the array.
                frame.CopyPixelDataTo(pixelData);

                // Create a bmp to hold the actual image.
                Bitmap bmp = new Bitmap(frame.Width, frame.Height, PixelFormat.Format32bppRgb);
                // Create the bitmap data to hold the data for the image.
                BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, frame.Width, frame.Height), ImageLockMode.WriteOnly, bmp.PixelFormat);
                // Create the pointer to the bmp data.
                IntPtr ptr = bmpData.Scan0;
                // Then copy the actual data to the bmp.
                System.Runtime.InteropServices.Marshal.Copy(pixelData, 0, ptr, frame.PixelDataLength);
                // Unlock the bmp data bits so they can be used.
                bmp.UnlockBits(bmpData);
                // Switch through the image index.
                switch (imageIndex)
                {
                    case 0:
                        // Set the color image for the 1st picture box to the bmp image.
                        this.kinectPB1.Image = bmp;
                        break;
                    case 1:
                        // Set the color image for the 2nd picture box to the bmp image.
                        this.kinectPB2.Image = bmp;
                        break;
                    case 2:
                        // Set the color image for the 3rd picture box to the bmp image.
                        this.kinectPB3.Image = bmp;
                        break;
                    case 3:
                        // Set the color image for the 4th picture box to the bmp image.
                        this.kinectPB4.Image = bmp;
                        break;
                }

                // Dispose of the frame.
                frame.Dispose();
            }
        }
开发者ID:GEMISIS,项目名称:Multi_Kinect_Demo,代码行数:50,代码来源:mainForm.cs

示例3: KinectColorFrameReady

        /// <summary>
        /// Sets the data of ColorVideo.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="colorImageFrame"></param>
        public void KinectColorFrameReady(object sender, ColorImageFrameReadyEventArgs colorImageFrame)
        {
            //Get raw image
            ColorVideoFrame = colorImageFrame.OpenColorImageFrame();

            if (ColorVideoFrame != null)
            {
                //Create array for pixel data and copy it from the image frame
                PixelData = new Byte[ColorVideoFrame.PixelDataLength];
                ColorVideoFrame.CopyPixelDataTo(PixelData);

                //Convert RGBA to BGRA, Kinect and XNA uses different color-formats.
                BgraPixelData = new Byte[ColorVideoFrame.PixelDataLength];
                for (int i = 0; i < PixelData.Length; i += 4)
                {
                    BgraPixelData[i] = PixelData[i + 2];
                    BgraPixelData[i + 1] = PixelData[i + 1];
                    BgraPixelData[i + 2] = PixelData[i];
                    BgraPixelData[i + 3] = (Byte)255; //The video comes with 0 alpha so it is transparent
                }

                // Create a texture and assign the realigned pixels
                ColorVideo = new Texture2D(Graphics.GraphicsDevice, ColorVideoFrame.Width, ColorVideoFrame.Height);
                ColorVideo.SetData(BgraPixelData);
                ColorVideoFrame.Dispose();
            }
        }
开发者ID:Hammerstad,项目名称:CustomerDrivenProject,代码行数:32,代码来源:KinectVideoStream.cs

示例4: processFrame

        private void processFrame(ColorImageFrame colorFrame)
        {
            //using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
              {
                  if (colorFrame != null)
                  {
                      bool colorFormat = this.rgbImageFormat != colorFrame.Format;

                      if (colorFormat)
                      {
                          width = colorFrame.Width;
                          height = colorFrame.Height;

                          this.colorpixelData = new byte[colorFrame.PixelDataLength];
                          this.colorFrameRGB = new byte[colorFrame.Width * colorFrame.Height * Bgr32BytesPerPixel];

                          this.processedBitmap = new WriteableBitmap(colorFrame.Width, colorFrame.Height, 96, 96, PixelFormats.Bgr32, null);

                          //this.procImage.Source = this.processedBitmap; // do now or later?

                          //Console.WriteLine("Frame written");
                      }

                      colorFrame.CopyPixelDataTo(this.colorpixelData);

                      // Output raw image
                      this.outputColorBitmap = new WriteableBitmap(colorFrame.Width, colorFrame.Height, 96, 96, PixelFormats.Bgr32, null);
                      this.outputColorBitmap.WritePixels(
                          (new Int32Rect(0, 0, colorFrame.Width, colorFrame.Height)),
                          colorpixelData,
                          colorFrame.Width * Bgr32BytesPerPixel,
                          0);
                      this.raw_image.Source = this.outputColorBitmap;

                      // PROCESS THE DATA //
                      colorpixelData = convertToHSL(colorpixelData);
                      frameProcessor(colorpixelData);
                      //processedcolorpixelData = colorpixelData;

                      // Output processed image
                      this.processedBitmap.WritePixels(
                          new Int32Rect(0, 0, colorFrame.Width, colorFrame.Height),
                          processedcolorpixelData,
                          colorFrame.Width * Bgr32BytesPerPixel,
                          0);

                      this.rgbImageFormat = colorFrame.Format;

                      this.procImage.Source = this.processedBitmap;
                      //Console.WriteLine("Frame written");

                      colorFrame.Dispose();
                  }

              }
        }
开发者ID:robinj,项目名称:parse-client,代码行数:56,代码来源:HSLTracker.xaml.cs

示例5: getHeadshot

        private ImageSource getHeadshot(Skeleton sk, ColorImageFrame colorFrame)
        {
            Joint head = sk.Joints[JointType.Head];
            // Magic numbers, head position seems to scale with depth, these values are calibrated for a specific depth
            Joint scaledHead = head.ScaleTo(640, 480, 1.25f, 0.9f);

            int x = (int)scaledHead.Position.X;
            int y = (int)scaledHead.Position.Y;
            if (colorFrame == null)
            {
                return null;
            }

            byte[] pixels = new byte[colorFrame.PixelDataLength];
            colorFrame.CopyPixelDataTo(pixels);

            int stride = colorFrame.Width * 4;

            BitmapSource frame = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96, PixelFormats.Bgr32, null, pixels, stride);
            if (x - 32 >= 0 && y - 16 >= 0 && x - 32 < 640-65 && y - 16 < 480-65)
            {
                x = x - 32;
                y = y - 16;
                CroppedBitmap pic = new CroppedBitmap(frame, new Int32Rect(x, y, 65, 65));
                colorFrame.Dispose();
                return pic;
            }
            colorFrame.Dispose();
            return null;
        }
开发者ID:raphtown,项目名称:Interactive-Prototype,代码行数:30,代码来源:MainWindow.xaml.cs


注:本文中的Microsoft.Kinect.ColorImageFrame.Dispose方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。