Использовать InteropImage в WPF EmguCV

Я хочу использовать EmguCV для обработки изображений. Я делаю предварительный просмотр камеры с этим кодом.

   CLEyeCameraImage kamera = new CLEyeCameraImage();
            kamera.ColorMode = CLEyeCameraColorMode.CLEYE_COLOR_PROCESSED;

            kamera.Device.Create(CLEyeCameraDevice.CameraUUID(i));


            kamera.Device.Start();
            kamera.Width = 500;
            kamera.Height = 500;
            InteropBitmap b = kamera.Device.BitmapSource;
            image.Source = b;

Но я не могу найти, как я могу использовать этот InteropBitmap в EmguCV для обработки. Как я могу использовать interopbitmap в EmguCV?

1 ответ

Вы должны конвертировать InteropBitmap в соответствующий Image<C,D> объект. поскольку InteropBitmap это BitmapSourceВы можете сделать это, например, так:

static Image<Bgr, byte> ConvertBitmapSourceToEmguImage(BitmapSource source)
{
    using (MemoryStream tempStream = new MemoryStream())
    {
        BitmapEncoder enc = new BmpBitmapEncoder();
        enc.Frames.Add(BitmapFrame.Create(source));
        enc.Save(tempStream);
        using (Bitmap tempBmp = new Bitmap(tempStream))
        {
            return new Image<Bgr, byte>(tempBmp);
        }
    }
}
Другие вопросы по тегам