程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用 AForge.NET 做視頻采集,aforge.net視頻采集

使用 AForge.NET 做視頻采集,aforge.net視頻采集

編輯:C#入門知識

使用 AForge.NET 做視頻采集,aforge.net視頻采集


AForge.NET 是基於C#設計的,在計算機視覺和人工智能方向擁有很強大功能的框架。btw... it's an open source framework. 附上官網地址: http://www.aforgenet.com/aforge/framework/ 。

今天要介紹的是AForge中的視頻采集功能,這裡的視頻包括從攝像頭等設備的輸入和從視頻文件的輸入。

首先來認識一下 視頻源播放器:VideoSourcePlayer,從攝像頭和文件輸入的視頻,都會通過它來播放,並按幀(Frame)來輸出Bitmap數據。

VideoSourcePlayer 使用有這麼幾個重要的步驟:

  • 初始化它,設置 VideoSource 屬性。VideoSource 接受 IVideoSource 類型的參數,對應到攝像頭輸入和文件輸入,我們分別會把它設置為 VideoCaptureDevice 和 FileVideoSource。
  • 注冊 NewFrame 事件,開始播放。在 NewFrame 注冊的事件中處理每一幀的Bitmap。
  • 處理完成後,取消 NewFrame 事件注冊,停止它。使用 SignalToStop(); and WaitForStop();

整個使用過程是非常簡單的。下面分別來看看攝像頭輸入和文件輸入的代碼吧:

 1. 攝像頭輸入

首先是初始化和開始:

// 獲取視頻輸入設備列表
FilterInfoCollection devices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

// 獲取第一個視頻設備(示例代碼,未對devices個數為0的情況做處理)
VideoCaptureDevice source = new VideoCaptureDevice(devices[0].MonikerString);
// 設置Frame 的 size 和 rate
source.DesiredFrameSize = new Size(640, 360);
source.DesiredFrameRate = 1;

// 設置VideoSourcePlayer的VideoSource
VideoSourcePlayer videoPlayer = new VideoSourcePlayer();
videoPlayer.VideoSource = source;

videoPlayer.NewFrame += videoPlayer_NewFrame;

videoPlayer.Start();

這裡是NewFrame事件代碼:

private void videoPlayer_NewFrame(object sender, ref Bitmap image)
{
    // do sth with image
    ...
}

在使用完成後,停止的代碼:

videoPlayer.NewFrame -= videoPlayer_NewFrame;
videoPlayer.SignalToStop();
videoPlayer.WaitForStop();

 

2. 文件輸入

首先是初始化和開始:

// 活體對應視頻路徑的文件作為視頻源
FileVideoSource videoSource = new FileVideoSource(videoFilePath);
videoPlayer.VideoSource = videoSource;

videoPlayer.NewFrame += videoPlayer_NewFrame;

videoPlayer.Start();

其余兩部分代碼和攝像頭輸入是一樣的,這裡就不重復了。

對於文件輸入,還有一點需要注意的,有些機器的codec並不完整,導致FileVideoSource讀取某些格式,比如mp4的時候會出現讀取錯誤,這時需要安裝一個codec的pack,就可以了。

好了,AForge.NET 的視頻采集功能就介紹完了,接下來會再挑一些AForge中有趣的功能來做介紹。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved