C#, веб-камера Emgu-выберите размер захвата
Я использую библиотеку Emgu для интеграции функций веб-камеры open CV в C#.
Я использую этот код для выбора устройства захвата и установления его размера:
camera = new Capture(0);
camera.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, videoSettings.width);
camera.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, videoSettings.height);
затем я показываю его в imageBox, как это:imageBox1.Image = camera.QueryFrame();
затем, чтобы сделать снимок текущего кадра, я использую этот код:
Image<Bgr, byte> snapshot = camera.QueryFrame();
snapshot.Save("snapshot.jpg");
хотя я хотел бы иметь возможность сохранить снимок с более высоким разрешением, чем окно предварительного просмотра.
но проблема в том, что, насколько я знаю, я не могу создать новый объект "захвата", используя ту же веб-камеру. Поэтому мне интересно, возможно ли установить camera.setCaptureProperty
высота и ширина, скажем, 1028x720, но затем каким-то образом обрезать его для отображения в imageBox с разрешением 514x360?
или есть другой способ сделать это?
2 ответов
Я решил это, используя изменить размер() метод QueryFrame ()
currentFrame = grabber.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);