您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#+EmguCV怎么實現使用攝像頭讀取、保存視頻”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“C#+EmguCV怎么實現使用攝像頭讀取、保存視頻”文章能幫助大家解決問題。
在Emgucv中調用攝像頭需要用到VideoCapture類
這個類有四種重載的方式
1、不寫參數,那么初始化的時候就會調用默認的攝像頭
2、一個int類型的數字,這個數字的含義是攝像頭的索引。會按照索引來初始化攝像頭
3、一個字符串,這個字符串的含義是文件名或視頻流名。初始化會讀取視頻文件或視頻流
4、CaptureType 的枚舉
這個枚舉的內容很多,這里不再贅述
新建一個控制臺應用程序來實現視頻的讀取和保存,代碼如下
class Program { static void Main(string[] args) { show(); } private static void show() { //VideoCapture cap = new VideoCapture("AVSEQ02.avi"); //VideoCapture cap = new VideoCapture(CaptureType.Any); VideoCapture cap = new VideoCapture(); VideoWriter writer = new VideoWriter("save.avi", 20, new Size(640, 480), true); if (!cap.IsOpened) { Console.WriteLine("打開失敗"); return; } Mat mat = new Mat(); while (true) { cap.Read(mat); if (mat.IsEmpty) { Console.WriteLine("讀取完畢"); break; } CvInvoke.Imshow("video", mat); writer.Write(mat); CvInvoke.WaitKey(30); } CvInvoke.WaitKey(0); } }
這里用VideoCapture 的Read()方法來讀取視頻的每一幀。保存在Mat這個對象中。并 CvInvoke.Imshow()出來。然后用VideoWriter的Write方法,把每一幀的圖像保存成視頻。
這里需要注意的地方是:在循環中需要停留30毫秒,否則視頻顯示不出來。 CvInvoke.WaitKey(30);
運行程序后,可以看到,攝像頭讀取的視頻已經保存了下來
關于“C#+EmguCV怎么實現使用攝像頭讀取、保存視頻”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。