1. 程式人生 > >AForge,Emgu.CV抓拍圖像大小

AForge,Emgu.CV抓拍圖像大小

vid 視頻 機器 direct ice 設置 args template set

原文:AForge,Emgu.CV抓拍圖像大小

2017年,忙忙碌碌地過去了,象往年一樣,依然沒有時間上CSDN,博客園。

這一年是打工以來最辛苦的一年。

這一年用了不少自己沒有接觸過的東西。如人臉識別,小程序,android開發等。

從.net到java,開發當中有很多坑,有些是通過baidu,bing搜到國內外辛苦貢獻的開發人員的答案而解決的。

而我根本沒有時間把這些解決方法貢獻到社區,因為象一臺機器要不停地運轉,產出……

在做人臉識別項目時使用了:AForge,Emgu.CV。用它們來顯示視頻和抓拍圖片。

相對來說AForge占用資源少點。人臉圖片大小需要控制在合適的範圍內,識別率才高。

圖片的大小我選擇了源頭控制方式, 抓拍出來的圖片就能用。

AForge

?mImageSize = new ResizeNearestNeighbor(width, Height);
?videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
?//2.0以上的版本已不支持
?videoSource.DesiredFrameSize = new Size(width, Height);
?videoSource.DesiredFrameRate = 1;

用下面方法來處理。

using AForge.Video.DirectShow;
using AForge.Video;
using System.Configuration;
using AForge.Imaging.Filters;

private ResizeNearestNeighbor mImageSize;
//抓拍時處理
void videoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            try
            {
                Bitmap bmp = mImageSize.Apply(eventArgs.Frame);
                bmp.Save(mCatchImagePath);
                bmp.Dispose();
            }
            catch (Exception ex)
            {
               
            }
        }

Emgu.CV 直接設置

 mCapture = new Capture(0);
 mCapture.SetCaptureProperty(Emgu.CV.CvEnum.CapProp.Fps, 30);
 mCapture.SetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameWidth, 640);
 mCapture.SetCaptureProperty(Emgu.CV.CvEnum.CapProp.FrameHeight, 480);
利用年底的空閑寫一,希望2018年有空寫上十幾篇。




AForge,Emgu.CV抓拍圖像大小