成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

幾行代碼,實現Python捕獲、播放和保存攝像頭視頻!

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

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

 Python 怎樣提高視頻清晰度和對比度?

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

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

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

讀取視頻

要捕獲視頻,你需要創建一個 VideoCapture 對象。它的參數可以是設備索引或視頻文件的名稱。所以,我們讀取視頻有兩種方式,分別是從相機中讀取視頻和從文件中讀取視頻。

從相機中讀取視頻

對于有攝像頭的設備,例如帶攝像頭的筆記本電腦,我們可以直接調起電腦的攝像頭,讀取攝像頭的視頻流。

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
# 顯示結果幀
cv.imshow('frame', frame)
if cv.waitKey(1) == ord('q'):
break
# 完成所有操作后,釋放捕獲器
cap.release()
cv.destroyAllWindows()

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

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

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

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

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

運行這段代碼,你就可以看到一個彈窗實時地播放你電腦攝像頭中的圖像了。

從文件中播放視頻

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

另外,在顯示視頻時,可以通過 cv.waitKey() 來控制視頻播放的速度。如果設置太小,則視頻將非常快,相當于倍速播放;而如果太大,則視頻將變得很慢,相當于延遲播放。正常情況下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()

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

保存視頻

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

cv.VideoWriter() 有5個參數:

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

關于 FourCC 與視頻格式的對照關系,我列舉了一些常見的格式:

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)
# 定義編解碼器并創建VideoWriter對象
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)
# 寫翻轉的框架
out.write(frame)
cv.imshow('frame', frame)
if cv.waitKey(1) == ord('q'):
break
# 完成工作后釋放所有內容
cap.release()
out.release()
cv.destroyAllWindows()

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

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

總結

以上就是今天要介紹的內容了,使用 python-opencv 來操作視頻還是比較簡單的。當然,你也可以在讀取或者保存視頻時對視頻進行一些處理,這個我們后續再發文介紹。

責任編輯:龐桂玉 來源: Python技術
相關推薦

2022-05-12 09:25:19

Python播放視頻攝像頭

2009-08-21 17:11:05

C#攝像頭

2021-03-11 10:21:55

特斯拉黑客網絡攻擊

2013-03-21 09:56:09

2025-01-13 00:00:30

WinForm應用開發

2009-08-21 17:17:49

C#攝像頭編程

2017-06-20 11:45:52

2024-11-29 16:51:18

2011-04-25 09:16:10

Windows 8

2012-06-23 20:13:44

HTML5

2021-12-27 09:20:46

微軟VR

2023-01-13 08:00:00

人工智能攝像頭人臉識別

2021-05-19 05:45:19

漏洞服務器網絡安全

2009-06-17 11:52:01

Linux

2009-08-21 17:24:18

C#控制攝像頭

2011-09-08 13:53:20

Linux攝像頭

2023-07-26 16:31:09

Windows 10Windows 11微軟

2021-12-19 07:22:51

WebRTC分享屏幕前端開發

2024-01-11 12:01:13

Python編程語言OpenCV

2011-09-13 15:51:11

PhoneGap AP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区久久久 | 欧美一区二 | 亚洲欧美在线视频 | 精品九九 | 成人在线免费观看视频 | 日日干日日射 | 亚洲欧洲精品一区 | 在线视频亚洲 | 精品国产乱码久久久久久影片 | 国产精品区二区三区日本 | 久久大陆 | 蜜桃视频麻豆 | 高清成人免费视频 | 亚洲精品免费视频 | 精品国产一区二区在线 | 一区二区三区四区在线视频 | 欧美日韩国产一区二区三区 | 国产一区二区三区四区三区四 | 暴草美女 | 精品成人 | 91精品国产综合久久婷婷香蕉 | 7777在线视频 | 91久久精品一区二区二区 | 欧美在线观看一区 | 99久久精品国产一区二区三区 | 国产精品18久久久久久白浆动漫 | a黄毛片 | 国产午夜精品久久久 | 伊人热久久 | 波多野结衣电影一区 | 午夜专区| 色接久久| 亚洲精品视频播放 | 成人在线免费电影 | 国产成人短视频在线观看 | 欧美一级在线观看 | 伊人春色在线观看 | 国内久久| 视频在线一区 | 高清欧美性猛交xxxx黑人猛交 | 日韩欧美专区 |