最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實(shí)現(xiàn)捕獲,播放和保存攝像頭視頻

 更新時(shí)間:2022年04月14日 09:46:01   作者:派森醬  
這篇文章主要為大家分享一下Python操作視頻最基本的操作,包括讀取和播放視頻和保存視頻。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

前幾天有個(gè)讀者在粉絲群里面提了一個(gè)問題:

Python 怎樣提高視頻清晰度和對(duì)比度?

我之前沒有涉及到使用 Python 操作視頻這一方面,所以當(dāng)時(shí)很抱歉地跟讀者朋友說暫未涉及。

這兩天想了下,感覺應(yīng)該補(bǔ)一下這一塊的內(nèi)容,一方面是增加自己涉獵的廣度,另一方面也可以給粉絲答疑解惑。

今天先分享一下 Python 操作視頻最基本的操作,包括讀取和播放視頻和保存視頻。

讀取視頻

要捕獲視頻,你需要?jiǎng)?chuàng)建一個(gè) VideoCapture 對(duì)象。它的參數(shù)可以是設(shè)備索引或視頻文件的名稱。所以,我們讀取視頻有兩種方式,分別是從相機(jī)中讀取視頻和從文件中讀取視頻。

從相機(jī)中讀取視頻

對(duì)于有攝像頭的設(shè)備,例如帶攝像頭的筆記本電腦,我們可以直接調(diào)起電腦的攝像頭,讀取攝像頭的視頻流。

import?cv2?as?cv
cap?=?cv.VideoCapture(0)
if?not?cap.isOpened():
????print("Cannot?open?camera")
????exit()
while?True:
????#?逐幀捕獲
????ret,?frame?=?cap.read()
????#?如果正確讀取幀,ret為True
????if?not?ret:
????????break
????#?顯示結(jié)果幀
????cv.imshow('frame',?frame)
????if?cv.waitKey(1)?==?ord('q'):
????????break
#?完成所有操作后,釋放捕獲器
cap.release()
cv.destroyAllWindows()

這里我向 VideoCapture 對(duì)象傳入了參數(shù) 0,表示設(shè)備索引,設(shè)備索引就是指定哪個(gè)攝像頭的數(shù)字。正常情況下,一個(gè)攝像頭會(huì)被連接(就像我的情況一樣)。所以我簡(jiǎn)單地傳0。你可以通過傳遞1來選擇第二個(gè)相機(jī),以此類推。

cap.isOpened() 用來判斷是否捕獲到視頻。

cap.read() 返回布爾值(True/ False)。如果正確讀取了幀,它將為True。因此,你可以通過檢查此返回值來檢查視頻的結(jié)尾。

cv.imshow 方法用來顯示視頻的幀。我們播放視頻的原理就是逐幀播放。

在最后,不要忘記通過 cap.release() 釋放俘虜。

運(yùn)行這段代碼,你就可以看到一個(gè)彈窗實(shí)時(shí)地播放你電腦攝像頭中的圖像了。

從文件中播放視頻

與從相機(jī)捕獲相同,只是用視頻文件名更改攝像機(jī)索引。

另外,在顯示視頻時(shí),可以通過 cv.waitKey() 來控制視頻播放的速度。如果設(shè)置太小,則視頻將非常快,相當(dāng)于倍速播放;而如果太大,則視頻將變得很慢,相當(dāng)于延遲播放。正常情況下25毫秒就可以了。

import?cv2?as?cv
cap?=?cv.VideoCapture('video.mp4')
while?cap.isOpened():
????ret,?frame?=?cap.read()
????#?如果正確讀取幀,ret為True
????if?not?ret:
????????break
????cv.imshow('frame',?frame)
????if?cv.waitKey(1)?==?ord('q'):
????????break
cap.release()
cv.destroyAllWindows()

運(yùn)行這段代碼,你就可以看到一個(gè)彈窗播放你選擇的視頻文件了。

保存視頻

從相機(jī)讀取視頻,我們可以將視頻保存到本地。我們捕捉一個(gè)視頻,一幀一幀地處理,如果我們想要保存這個(gè)視頻,非常簡(jiǎn)單,只需使用 cv.VideoWriter()。

cv.VideoWriter() 有5個(gè)參數(shù):

  • 參數(shù)1:輸出文件名,例如: output.mp4。
  • 參數(shù)2:FourCC 代碼,F(xiàn)ourCC 是用于指定視頻編解碼器的4字節(jié)代碼。
  • 參數(shù)3:幀率的數(shù)量。
  • 參數(shù)4:幀大小。
  • 參數(shù)5:顏色標(biāo)志。如果為 True,正常顏色輸出,否則就是灰色圖像輸出。

關(guān)于 FourCC 與視頻格式的對(duì)照關(guān)系,我列舉了一些常見的格式:

cv2.VideoWriter_fourcc(‘P’,‘I’,‘M’,‘1’) = MPEG-1 codec

cv2.VideoWriter_fourcc(‘M’,‘J’,‘P’,‘G’) = motion-jpeg codec --> mp4v

cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘2’) = MPEG-4.2 codec

cv2.VideoWriter_fourcc(‘D’, ‘I’, ‘V’, ‘3’) = MPEG-4.3 codec

cv2.VideoWriter_fourcc(‘D’, ‘I’, ‘V’, ‘X’) = MPEG-4 codec --> avi

cv2.VideoWriter_fourcc(‘U’, ‘2’, ‘6’, ‘3’) = H263 codec

cv2.VideoWriter_fourcc(‘I’, ‘2’, ‘6’, ‘3’) = H263I codec

cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’) = FLV1 codec

保存視頻的代碼:

import?cv2?as?cv
cap?=?cv.VideoCapture(0)
#?定義編解碼器并創(chuàng)建VideoWriter對(duì)象
fourcc?=?cv.VideoWriter_fourcc(*'MJPG')
out?=?cv.VideoWriter('output.mp4',?fourcc,?20.0,?(640,??480))
while?cap.isOpened():
????ret,?frame?=?cap.read()
????if?not?ret:
????????break
????frame?=?cv.flip(frame,?1)
????#?寫翻轉(zhuǎn)的框架
????out.write(frame)
????cv.imshow('frame',?frame)
????if?cv.waitKey(1)?==?ord('q'):
????????break
#?完成工作后釋放所有內(nèi)容
cap.release()
out.release()
cv.destroyAllWindows()

運(yùn)行這段代碼,你就可以在代碼目錄下找到一個(gè) output.mp4 的視頻文件了。

上面幾段代碼中,如果想要退出視頻操作,敲擊鍵盤的 q 就可以。

到此這篇關(guān)于基于Python實(shí)現(xiàn)捕獲,播放和保存攝像頭視頻的文章就介紹到這了,更多相關(guān)Python攝像頭視頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 不同對(duì)象比較大小示例探討

    Python 不同對(duì)象比較大小示例探討

    不同對(duì)象比較是按照 type names 比較,當(dāng)相同類型對(duì)象不支持適當(dāng)比較的時(shí)候,采用 address 比較,需要的朋友可以參考下
    2014-08-08
  • TF-IDF與余弦相似性的應(yīng)用(二) 找出相似文章

    TF-IDF與余弦相似性的應(yīng)用(二) 找出相似文章

    這篇文章主要為大家詳細(xì)介紹了TF-IDF與余弦相似性的應(yīng)用,找出相似文章,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • python numpy數(shù)組中的復(fù)制知識(shí)解析

    python numpy數(shù)組中的復(fù)制知識(shí)解析

    這篇文章主要介紹了python numpy數(shù)組中的復(fù)制知識(shí)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python?Anaconda以及Pip配置清華鏡像源代碼示例

    Python?Anaconda以及Pip配置清華鏡像源代碼示例

    Anaconda指的是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),下面這篇文章主要給大家介紹了關(guān)于Python?Anaconda以及Pip配置清華鏡像源的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別

    Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別

    本文主要介紹了Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 利用python腳本提取Abaqus場(chǎng)輸出數(shù)據(jù)的代碼

    利用python腳本提取Abaqus場(chǎng)輸出數(shù)據(jù)的代碼

    這篇文章主要介紹了利用python腳本提取Abaqus場(chǎng)輸出數(shù)據(jù),利用python腳本對(duì)Abaqus進(jìn)行數(shù)據(jù)提取時(shí),要對(duì)python腳本做前步的導(dǎo)入處理,本文通過實(shí)例代碼詳細(xì)講解需要的朋友可以參考下
    2022-11-11
  • Python抖音無水印視頻下載方法

    Python抖音無水印視頻下載方法

    這篇文章主要介紹了用Python下載抖音無水印視頻的方法,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Python3利用openpyxl讀寫Excel文件的方法實(shí)例

    Python3利用openpyxl讀寫Excel文件的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python3利用openpyxl讀寫Excel文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 記一次Django響應(yīng)超慢的解決過程

    記一次Django響應(yīng)超慢的解決過程

    這篇文章主要介紹了記一次Django響應(yīng)超慢的解決過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • pip版本低導(dǎo)致Python離線包安裝失敗的問題解決

    pip版本低導(dǎo)致Python離線包安裝失敗的問題解決

    在使用Python進(jìn)行開發(fā)時(shí),安裝各種第三方庫(kù)是必不可少的,不過,有時(shí)候我們會(huì)遇到一些麻煩,尤其是當(dāng)pip的版本較低時(shí),下面我們來看看如何解決這一問題吧
    2025-03-03

最新評(píng)論

五指山市| 景泰县| 新密市| 论坛| 桓台县| 莫力| 布拖县| 郓城县| 东阳市| 赤城县| 巴彦淖尔市| 黄骅市| 建昌县| 石家庄市| 奉贤区| 布拖县| 江门市| 德庆县| 河东区| 扎囊县| 临湘市| 嘉祥县| 金寨县| 朝阳区| 武胜县| 麻江县| 梧州市| 上虞市| 肃北| 彭水| 华容县| 右玉县| 隆安县| 南雄市| 贺兰县| 瑞金市| 阜新| 南通市| 孟村| 古丈县| 印江|