zoukankan      html  css  js  c++  java
  • 使用EmguCV3.0.0调用摄像头并设置帧率

    此教程使用emgu3.0.0,其他版本兼容性未知。

      转载请注明出处: http://www.cnblogs.com/zaiyuzhong/p/open-camera-with-emgu3_0_0.html

    先说设置帧率,是通过调用Capture实例的SetCaptureProperty方法:

      capture.SetCaptureProperty(CapProp.Fps, 帧率数);

    该方法可以设置绝大多数摄像头参数。相应的,可以通过GetCaptureProperty获得这些参数。

    该示例只需引用 Emgu.CV.dll 和 Emgu.Util.dll

     1 var capture = new Capture(0); //这里打开第一个, 多个摄像头先获取名字数组, 再根据名字获得对应下标
     2 capture.SetCaptureProperty(CapProp.Fps, 1);
     3 var ts = new ThreadStart(() => 
     4 {
     5     while(!shouldStop)
     6     {
     7         var image = capture.QueryFrame(); // image是Emgu.CV.Mat类型
     8     }
     9 });
    10 shouldStop = false;
    11 new Thread(ts){ IsBackground = true }.Start();
    打开摄像头
     1 public Bitmap ConvertMat2Bitmap(Mat cvImg)
     2 {
     3     Bitmap bmpImg;
     4     if (cvImg.Depth != DepthType.Cv8U)
     5     {
     6         bmpImg = new Bitmap(1, 1, PixelFormat.Format8bppIndexed);
     7         return bmpImg;
     8     }
     9     var pixelFormat = PixelFormat.Format8bppIndexed;
    10     if (cvImg.NumberOfChannels == 3)
    11         pixelFormat = PixelFormat.Format24bppRgb;
    12     else if (cvImg.NumberOfChannels == 4)
    13         pixelFormat = PixelFormat.Format32bppArgb;
    14     bmpImg = new Bitmap(cvImg.Cols, cvImg.Rows, cvImg.Step, pixelFormat, Marshal.UnsafeAddrOfPinnedArrayElement(cvImg.Data, 0));
    15     return bmpImg;
    16 }
    Mat转Bitmap

    最近家里没电脑, 等等我实验一下3.1

    最后别忘了释放Capture实例

  • 相关阅读:
    racket eval
    mex不兼容
    【转】雷军 程序员随想
    UBoot 目录结构和编译过程
    远程监控web开发
    STL容器[08]
    STL容器[07]
    STL容器[17]
    STL容器[06]
    stl.map使用总结
  • 原文地址:https://www.cnblogs.com/zaiyuzhong/p/open-camera-with-emgu3_0_0.html
Copyright © 2011-2022 走看看