C#采集UVC攝像頭畫面並支持旋轉和分辨率切換


 

在項目中,我們會需要控制uvc攝像頭,采集其實時畫面,或者對其進行旋轉。目前市面上大多數USB攝像頭都支持UVC協議。那么如何采集呢?當然是采用SharpCamera!因為SharpCamera支持對采集的畫面進行旋轉,也可以對采集結果進行亮度、對比度等數十種高級參數進行調整。下面開始演示關鍵代碼,您也可以在文末下載全部源碼:

設置授權

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

KeyMgr.SetKey("Test");

獲取CameraMgr的示例

從之前的一篇博文中,我們介紹了一張圖看懂SharpCamera,從那篇文章我們可以看出,SharpCamera通過CameraMgr管理電腦上插入的所有UVC攝像頭。UVC攝像頭可能包含多個,您可以通過CameraMgr提供的方法獲取具體某一個的攝像頭Camera對象,進而進行控制。

//實例化一個CameraMgr
cameraMgr = new CameraMgr();

獲取所有已經安裝的攝像頭

您可以隨時枚舉所有已經安裝的攝像頭。從而方便選擇自己要控制的攝像頭。

//得到當前計算機的所有已安裝攝像頭
List<string> lstCameraNameInstalled = cameraMgr.GetCameraNameList();

選定攝像頭

可以選定一個攝像頭,返回其Camera對象。

//選定該攝像頭
curCamera = cameraMgr.ChooseCamera(name);

綁定事件

為該Camera對象綁定OnVideoFrameCaptrue事件,每當引擎從該攝像頭獲取到一幀圖片,就會提交給該事件的響應方法。

//訂閱幀圖片上報的事件
curCamera.OnVideoFrameCaptrue += VideoFrameCaptrue;

設置采集分辨率

為該Camera對象設置采集時要用的分辨率:

//修改當前分辨率,注意:您設置的分辨率,必須是該攝像頭支持的分辨率,系統支持的分辨率可以通過curCamera.AllSupportedResolution獲取
curCamera.Resolution = new CameraResolution(320, 240);

設置旋轉角度

為該Camera對象設置采集時畫面旋轉角度,比如80,180,270,或不旋轉:

//設置旋轉角度
curCamera.RotateVideo(VideoRotateTypeEnum.Angle90);

打開攝像頭

准備工作做完了,可以打開攝像頭。如下:

//打開該攝像頭
curCamera.Open();

關閉攝像頭

您可以通過下面的代碼關閉攝像頭:

//關掉該攝像頭
curCamera.Close();

demo源碼下載

點擊下載源碼


免責聲明!

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



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