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 ответов


Я решил это, используя

imageBox1.SizeMode = PictureBoxSizeMode.StretchImage;

Я решил это, используя изменить размер() метод QueryFrame ()

currentFrame = grabber.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);