Emgu CV中的肖像模式

时间:2014-02-07 19:59:18

标签: c# winforms emgucv

我正在创建一个基于摄像头的winforms应用程序,其中我使用了EmguCV。

我想在单击按钮时以纵向模式捕获图像。

我试过了:

cap.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, 190);
cap.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, 250);

但是图片仍然保持横向模式,只有维度从640 x 480减少到某些176 x 130,但我想要人像。

那么有人能告诉我如何应对这个问题吗?

1 个答案:

答案 0 :(得分:0)

cap.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, 190);
cap.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, 250);

您正在使用的上述代码代码只会更改图像的大小(捕获的帧),您可能无法获得所提到的大小,可能是因为正在维护宽高比。

现在进入肖像模式拍摄,In会建议在拍摄后将当前帧旋转90度,然后重新调整尺寸以适合图像框。

代码将是这样的

public Form1()
{
    InitializeComponent();


    _capture = new Capture();   
    Application.Idle += ProcessFrame;
}

private void ProcessFrame(object sender, EventArgs arg)
{
    Image<Bgr, Byte> currentFrame = _capture.QueryFrame();
    currentFrame =currentFrame.Rotate(90,new Bgr(255,255,255),true);
    // other code to the task you want to achieve like displaying in ImageBox etc.


}

查看官方文档here