您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#+EmguCV怎么實現(xiàn)使用攝像頭讀取、保存視頻”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“C#+EmguCV怎么實現(xiàn)使用攝像頭讀取、保存視頻”文章能幫助大家解決問題。
在Emgucv中調(diào)用攝像頭需要用到VideoCapture類
這個類有四種重載的方式
1、不寫參數(shù),那么初始化的時候就會調(diào)用默認(rèn)的攝像頭
2、一個int類型的數(shù)字,這個數(shù)字的含義是攝像頭的索引。會按照索引來初始化攝像頭
3、一個字符串,這個字符串的含義是文件名或視頻流名。初始化會讀取視頻文件或視頻流
4、CaptureType 的枚舉
這個枚舉的內(nèi)容很多,這里不再贅述
新建一個控制臺應(yīng)用程序來實現(xiàn)視頻的讀取和保存,代碼如下
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方法,把每一幀的圖像保存成視頻。
這里需要注意的地方是:在循環(huán)中需要停留30毫秒,否則視頻顯示不出來。 CvInvoke.WaitKey(30);
運行程序后,可以看到,攝像頭讀取的視頻已經(jīng)保存了下來
關(guān)于“C#+EmguCV怎么實現(xiàn)使用攝像頭讀取、保存視頻”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。