C#,Emgu网络摄像头 - 选择捕捉尺寸

时间:2012-07-10 18:47:08

标签: c# video-capture emgucv

我正在使用Emgu库在C#中集成开放式CV网络摄像头功能。

我使用此代码选择捕获设备并设置其大小:

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");

虽然我希望能够以比预览窗口更高的分辨率保存快照。

但问题是,据我所知,我无法使用相同的webcamera创建一个新的“Capture”对象。所以我想知道是否有可能设置camera.setCaptureProperty高度和宽度让我们说1028x720然后以某种方式裁剪它以在imageBox中显示它,分辨率为514x360?

或者还有其他方法吗?

2 个答案:

答案 0 :(得分:10)

我使用

解决了这个问题
imageBox1.SizeMode = PictureBoxSizeMode.StretchImage;

答案 1 :(得分:2)

我在 QueryFrame()

中使用调整大小()方法解决了这个问题
currentFrame = grabber.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);