C#采集攝像頭實時畫面和抓拍


 

在.net中,並沒有簡單直接的操縱攝像頭的類。那么如何簡單快捷地采集攝像頭的畫面,進行抓拍等操作呢?答案是調用SharpCapture!專業采集攝像頭畫面等數據的類庫。下面開始演示關鍵代碼,您也可以在文末下載全部源碼:

設置授權

第一步:在引用了SharpCapture.dll之后,調用SharpCapture方法之前,一定要先通過下面代碼來設置授權信息,如果是試用版,直接輸入Test即可。

KeyMgr.SetKey("Test");

獲取ICameraCapture的示例

從之前的一篇博文中,我們介紹了一張圖看懂SharpCapture,從那篇文章我們可以看出,SharpCapture通過ICameraCapture采集攝像頭數據。那么如何獲取該接口的示例,從而使用該接口提供的各個方法呢?請看下面的代碼:

//攝像頭采集
camera = CaptureFactory.GetCameraCapture(0, new Size(int.Parse(this.edtWidth.Text), int.Parse(this.edtHeight.Text)), 30);

在上段代碼中,傳入攝像頭索引,從零開始計算。如果只有一個攝像頭,直接傳入0即可。再傳入要采集的分辨率大小,以及幀頻,這里是30幀/秒。

綁定事件

獲取到了ICameraCapture的示例后,為其綁定事件FrameImageCaptured。每當引擎從攝像頭采集到一幀畫面,就會將數據上交給該事件的響應函數上,您就可以進行下一步的處理,比如添加水印,對圖片進行各種圖像處理等。

//注冊采集到幀圖片的事件,在該事件函數中得到采集到的幀圖片
camera.FrameImageCaptured += new SGDelegate<Bitmap>(CameraImageCaptured);

開始采集

處理完上述步驟后,就可以開始采集了,攝像頭會打開。如下:

camera.Start();

停止采集

您可以通過下面的代碼停止采集:

camera.Stop();

demo源碼下載

點擊下載源碼

相關功能

您可以需要了解如何對幀圖片進行特效處理或者合成,請了解SharpImage:
SharpImage,媲美Ps的圖像特效和合成類庫

您可以需要了解對攝像頭亮度對比度色調曝光等幾十種參數進行調整,請了解SharpCamera:
SharpCamera,專業的攝像頭高級參數深控類庫

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM