日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

教你如何用python操作攝像頭以及對視頻流的處理

瀏覽:38日期:2022-07-08 15:22:20

實驗介紹

此次實驗幫助大家利用 OpenCV 去讀取攝像頭的視頻流,你可以直接使用筆記本本身的攝像頭,也可以用 USB 連接直接的攝像頭。如果你在操作過程中,攝像頭讀取失敗, 實驗中還為你提供了幾個問題排查步驟。當然,對視頻進行操作時還需要講解視頻相關的編解碼格式以及特定幀的讀取。在實驗的最后,還提供了 OpenCV 的項目實戰:視頻錄制與視頻讀取。

知識點

視頻錄制 視頻編解碼格式 視頻讀取以及特定幀的讀取

視頻錄制

使用 OpenCV 錄制視頻,主要涉及 OpenCV 的 VideoWrite 對象。錄制視頻的第一步要實例化一個 VideoCapture 對象,用于從攝像頭讀入圖片。創建一個 VideoCapture 對象的代碼如下:

cap = cv2.VideoCapture(0)

類 VideoCapture 的兩個常見構造函數:

<VideoCaputrue object> = cv2.VideoCapture(filename)

功能:打開視頻文件;

參數filename:視頻文件名。

<VideoCaputrue object> = cv2.VideoCapture(index)

功能:打開相機設備;

參數index:相機設備ID,當只有一個相機時,給0即可。

OpenCV 中視頻錄制需要借助 VideoWriter 對象, 將從 VideoCapture 中讀入圖片,不斷地寫入到 VideoWrite 的數據流中。創建 VideoWriter對象的代碼如下:

out = cv2.VideoWriter(’video_record.avi’, codec, fps, frameSize)

此次實驗選擇筆記本電腦內置的攝像頭,從中捕獲視頻并顯示視頻流。首先實現捕獲一張圖片。基本思路是首先打開相機,再判斷相機是否打開,相機打開成功后,捕獲一幀圖像,然后 imshow 顯示,最后關閉相機。具體代碼如下:

import cv2cap = cv2.VideoCapture(0)if cap.isOpened(): ret,frame = cap.read() cv2.imshow(’frame’,frame) cv2.waitKey(3000)cap.release()cv2.destroyAllWindows()

相機捕獲的一幀圖像如圖所示:

教你如何用python操作攝像頭以及對視頻流的處理

視頻編解碼格式

在寫入視頻的時候, 我們必須指定視頻的編解碼格式,這里我們指定為 MJPG 格式。指定視頻編解碼方式為 MJPG 的代碼如下:

codec = cv2.VideoWriter_fourcc(*’MJPG’)

在講解視頻的編解碼格式之前,我們先來學習一下 FourCC

FourCC 全稱 Four-Character Codes ,代表四字符代碼 (four character code), 它是一個 32 位的標示符,其實就是 typedef unsigned int FOURCC 。FourCC 是一種獨立標示視頻數據流格式的四字符代碼。

FourCC 支持的所有視頻編解碼的格式都可以在 FourCC 官網上查閱。

教你如何用python操作攝像頭以及對視頻流的處理

在指定視頻的編解碼格式為 MJPG 格式之后,我們還需要指定視頻的幀率跟窗口大小。指定寫入幀率為 30 以及窗口大小的代碼如下:

fps = 30.0frameSize = (640, 480)

初始化 VideoWriter 的時候,將這些參數傳入到其中。并指定輸出視頻文件的名稱。我們將輸出視頻文件的名稱命名為 video.avi ,具體代碼如下:

out = cv2.VideoWriter(’video.avi’, codec, fps, frameSize)

視頻錄制演示完整代碼

接下來,就是要不斷的從 VideoCapture 中讀入圖片,然后寫入到VideoWrite 的數據流中。不斷的向視頻輸出流寫入幀圖像的代碼如下:

out.write(frame)

在視頻錄制結束后,為了節省資源,我們需要釋放已經占用的資源,具體代碼實現如下:

cap.release()out.release()

視頻錄制演示完整代碼如下:

import numpy as npimport cv2cap = cv2.VideoCapture(0)codec = cv2.VideoWriter_fourcc(*’MJPG’)fps = 20.0frameSize = (640, 480)out = cv2.VideoWriter(’video.avi’, codec, fps, frameSize)print('按鍵Q-結束視頻錄制')while(cap.isOpened()): ret, frame = cap.read() if ret==True: out.write(frame) cv2.imshow(’frame’,frame) if cv2.waitKey(1) == ord(’q’): break else: breakcap.release()out.release()cv2.destroyAllWindows()

視頻讀取以及特定幀的讀取

視頻讀取函數介紹及實現

讀入視頻的時候,我們仍然需要使用 VideoCapture 對象,只不過傳入的不再是攝像頭的 ID 了,需要改成視頻文件的路徑。讀取視頻流的時候可以逐幀讀取捕獲實現的圖像。此時讀入視頻流的代碼如下:

cap = cv2.VideoCapture(’video.avi’)

OpenCV 提供了接口 VideoWriter 用于視頻的保存,具體函數表示如下:

cap = cv2.VideoCapture(’video.avi’)

函數參數:

filename:給要保存的視頻起個名字; fourcc:指定視頻編解碼器的4字節代碼;

【(‘P’,‘I’,‘M’,‘1’)是MPEG-1編解碼器】

【(‘M’,‘J’,‘P’,’G ’)是一個運動jpeg編解碼器】

fps:幀率; frameSize:幀大小。

從視頻文件中播放視頻,更改相機索引與視頻文件名。 在顯示幀時,選擇適當的 cv2.waitKey()時間,如果該值太小,視頻會非常快,如果它太大,視頻會很慢(這可以用來慢動作顯示視頻)。 正常情況下,25 毫秒即可。具體視頻讀取的源代碼如下:

import numpy as npimport cv2cap = cv2.VideoCapture(’video.avi’)while(True): ret, frame = cap.read() if ret: cv2.imshow(’frame’,frame) else: print('視頻讀取完畢或者視頻路徑異常') break if cv2.waitKey(25) & 0xFF == ord(’q’): breakcap.release()cv2.destroyAllWindows()

視頻寫入完成,命名為 video.avi ,結果展示如下:

教你如何用python操作攝像頭以及對視頻流的處理

教你如何用python操作攝像頭以及對視頻流的處理

視頻特定幀的讀取(通過幀數間隔截取視頻幀)

通過視頻的幀數間隔截取視頻的每一幀,自己設置幀間隔為 20 ,即每隔 20 幀截取一幀圖像,并將我們截取的每一幀保存到我們自定義的文件夾中,這里保存的文件夾為代碼存在的路徑下 capture_image 文件夾里。具體實現的代碼如下:

import cv2cap = cv2.VideoCapture('video.avi')c = 1frameRate = 20while(True):ret, frame = cap.read()if ret:if(c % frameRate == 0):print('開始截取視頻第:' + str(c) + ' 幀')cv2.imwrite('./capture_image/' + str(c) + ’.jpg’, frame)c += 1cv2.waitKey(0)else:print('所有幀都已經保存完成')breakcap.release()

運行結果如下,將展示我們截取的視頻幀數間隔:

教你如何用python操作攝像頭以及對視頻流的處理

如圖為視頻截取的最后一幀圖像:

教你如何用python操作攝像頭以及對視頻流的處理

注意:讀入視頻文件和保存圖片的路徑,都要使用“”,使用“/”或者“”會出現打開文件報錯。

攝像頭讀取失敗-問題排查

如果你運行上文的源代碼的時候,出現報錯。

你可以按照下面提供的思路自行檢查一下。

驅動問題 有的攝像頭可能存在驅動問題,需要安裝相關驅動,或者查看攝像頭是否具有UAC免驅協議。 USB接口兼容性問題 USB2.0接口接了一個USB3.0的攝像頭,也是不支持的(這只針對用 USB 連接攝像頭的,用筆記本自帶的攝像頭可忽略)。 設備掛載問題 攝像頭沒有被掛載,如果是虛擬機需要手動勾選設備。 硬件問題 在就是檢查一下USB線跟電腦USB接口。 視頻壓縮格式的問題 部分視頻壓縮格式在OpenCV中不支持。

實驗總結

初學者可能對 OpenCV 處理會很頭暈,因為它涉及到的函數有很多,每一個函數會有不同的用法,如果要通過 OpenCV 去調用攝像頭完成任務,就需要去學習這些內容。此次實驗從視頻錄取、視頻讀取再到視頻特定幀的讀取一步一步帶你實現,里面對相關函數也講解的非常透徹,相關參數也進行了說明,涉及到實踐的地方已經幫你把相關的源代碼給出,學習不會有障礙。當然,實驗最后也給出了攝像頭讀取失敗問題的排查步驟,讓你在學習的過程中能夠得到滿足。

到此這篇關于教你如何用python操作攝像頭以及對視頻流的處理的文章就介紹到這了,更多相關python操作攝像頭及視頻流內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品伊人久久| 日韩在线短视频| 老司机久久99久久精品播放免费| 999视频精品| 国产另类在线| 亚洲激情中文| 亚洲在线免费| 国产一区二区三区四区五区| 最新中文字幕在线播放| 伊人国产精品| 亚洲精品乱码久久久久久蜜桃麻豆| 精品网站999| 午夜在线视频一区二区区别| 亚洲免费观看高清完整版在线观| 最近高清中文在线字幕在线观看1| 蜜臀久久久99精品久久久久久| 国产精品久久观看| 日本不良网站在线观看| 日韩不卡在线观看日韩不卡视频| 不卡专区在线| 亚洲天堂久久| 国产精品视频一区二区三区四蜜臂 | 综合激情在线| 日韩影院二区| 精品网站999| 午夜一区在线| 蜜桃视频欧美| 少妇精品久久久一区二区三区| 欧美91福利在线观看| 国产一区二区三区视频在线| 欧美另类综合| 国内激情久久| 精品国产乱码久久久久久樱花| 日韩免费看片| 国产在线不卡一区二区三区| 91嫩草精品| 精品一区二区三区免费看| 国产三级一区| 日韩精品一卡| 日韩一区三区| 捆绑调教日本一区二区三区| 久久亚洲精精品中文字幕| 日本久久一区| 久久亚洲二区| 亚洲欧洲另类| 国产精品毛片在线看| 天堂中文av在线资源库| 久久只有精品| 精品国产亚洲日本| 麻豆精品新av中文字幕| 激情欧美日韩一区| 免费视频亚洲| 尹人成人综合网| 久久成人av| 欧美好骚综合网| 岛国av在线网站| 免费的成人av| 午夜天堂精品久久久久| 亚洲综合小说| 国产综合色区在线观看| 激情亚洲影院在线观看| 亚洲成a人片| 国产日韩欧美中文在线| 999久久久国产精品| 99成人超碰| 激情久久中文字幕| 欧美激情麻豆| 国产在线不卡一区二区三区| 高清在线一区| 久久国产成人| 亚洲bt欧美bt精品777| 国产精品密蕾丝视频下载| 日韩在线一区二区| 少妇精品在线| 国产高清日韩| 婷婷综合电影| 国产精品久久久网站| 中文字幕一区二区三区四区久久| 日韩欧美二区| av资源亚洲| 九一国产精品| 久久国产人妖系列| 中文无码日韩欧| 天堂av在线一区| 91精品国产自产在线观看永久∴| 精品亚洲精品| 日韩精品dvd| 久久亚洲精品中文字幕| 日韩欧美1区| 欧美日韩国产探花| 久久青青视频| 欧美肉体xxxx裸体137大胆| 精品久久不卡| 青青草精品视频| 免费在线观看日韩欧美| 7777精品| 免费在线观看一区| 日本91福利区| 国产精品亚洲一区二区在线观看| 91一区二区三区四区| 伊人成人网在线看| 亚洲精品第一| 精品一区二区三区免费看| 久久国产生活片100| 伊人久久av| 伊人久久大香伊蕉在人线观看热v| 欧美精品一二| 免费在线观看成人| 欧美日韩一视频区二区| 欧美一级二级三级视频| 伊伊综合在线| 免费美女久久99| 亚洲综合中文| 国产粉嫩在线观看| 天堂精品久久久久| 99精品在线免费在线观看| 日韩亚洲精品在线观看| 国产伊人久久| 老司机精品久久| 精品中文字幕一区二区三区四区| 不卡一区综合视频| 91麻豆精品| 日本免费一区二区视频| 亚洲成av人片一区二区密柚| 日韩1区2区3区| 久久精品国产99国产| 老司机精品久久| 成午夜精品一区二区三区软件| 美女视频黄免费的久久| 丰满少妇一区| 免费的成人av| 美女网站视频一区| 久久精品国产www456c0m| 国产一级成人av| 91成人超碰| 久久久久久黄| 欧美亚洲综合视频| 国产91在线播放精品| 国产aa精品| 国产欧美一区| 久久aⅴ国产紧身牛仔裤| 狠狠干综合网| 日本91福利区| 久久国产福利| 91成人在线网站| 国产一区二区三区精品在线观看| 黑森林国产精品av| 欧美网站在线| 日本中文字幕一区二区视频| 久久99影视| 欧美日韩精品在线一区| 亚洲欧美在线综合| 日韩激情一区二区| 国产精品黑丝在线播放| 亚洲欧美日本国产专区一区| 国产区精品区| 亚洲成人精品| 亚洲最新av| 国内精品伊人| 久久国产66| 国产精品一卡| 亚洲香蕉网站| 91精品国产一区二区在线观看| 色婷婷综合网| 丝袜诱惑制服诱惑色一区在线观看| 日韩一区免费| 国产一区二区三区久久| 亚洲啊v在线| 亚洲aa在线| 97精品视频在线看| 首页亚洲欧美制服丝腿| 国产精品高清一区二区| 国产精品色网| 视频在线不卡免费观看| 亚洲美女91| 亚洲成人精品| 综合视频一区| 91青青国产在线观看精品| 免费视频最近日韩| 国产亚洲电影| 丝袜美腿一区| 色综合视频一区二区三区日韩| 日韩欧美精品一区| 99在线|亚洲一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 91亚洲精品在看在线观看高清| 久草精品视频| 日韩黄色在线观看| 欧美性感美女一区二区| 欧美啪啪一区| 久久国产精品毛片| 日韩欧美一区二区三区免费看| 国产一精品一av一免费爽爽| 亚洲精品中文字幕乱码| 久久99蜜桃| 蜜桃一区二区三区在线| 久久精品影视| 日本一区二区中文字幕| 日韩在线视频一区二区三区| 国产一区二区三区探花|