Использовать 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);
}
}
}