(? ?_?)?[Python3 OpenCV4]3.視頻操作

      網友投稿 738 2025-03-31

      文章目錄

      接口文檔

      打開攝像頭

      播放本地視頻

      錄制視頻

      接口文檔

      VideoCapture Object

      VideoWriter Object

      cv2.cvtColor()

      打開攝像頭

      使用攝像頭,需要使用cv2.VideoCapture(0)創建VideoCapture對象,參數0指的是攝像頭的編號,如果你電腦上有兩個攝像頭的話,訪問第2個攝像頭就可以傳入1,依此類推。

      import cv2 # capture = cv2.VideoCapture(0) if None == capture: print("攝像頭打開失敗") while(True): # 獲取一幀 ret, frame = capture.read() if ret == False: continue # 將這幀轉換為灰度圖 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', gray) if cv2.waitKey(1) == ord('q'): break

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      VideoCaptureProperties

      cv2.CAP_PROP_POS_MSEC

      視頻文件的當前位置(毫秒)。

      cv2.CAP_PROP_POS_FRAMES

      下一步要解碼/捕獲的幀的基于0的索引。

      cv.2CAP_PROP_POS_AVI_RATIO

      視頻文件的相對位置:0=膠片開始,1=膠片結束。

      import cv2 #打開 0號攝像頭 capture = cv2.VideoCapture(0) # 獲取捕獲的分辨率 # propId可以直接寫數字,也可以用OpenCV的符號表示 width, height = capture.get(3), capture.get(4) print(width, height) # 以原分辨率的一倍來捕獲 capture.set(cv2.CAP_PROP_FRAME_WIDTH, width * 2) capture.set(cv2.CAP_PROP_FRAME_HEIGHT, height * 2) # 某些攝像頭設定分辨率等參數時會無效,因為它有固定的分辨率大小支持,一般可在攝像頭的資料頁# 中找到

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      播放本地視頻

      播放視頻其實跟打開攝像頭的操作一樣

      我們也可以獲取視頻分辨率、幀率、當前播放幀等等信息,可以查看

      VideoCapture Object

      結構就可以看到信息了~~~~~~~~~~

      eg:

      import cv2 # 播放本地視頻 capture = cv2.VideoCapture('wzry.mp4') #打印一些視頻的信息 print(capture.get(cv2.CAP_PROP_POS_MSEC)) width = capture.get(cv2.CAP_PROP_FRAME_WIDTH) height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT) print("分辨率:%f,%f"%(width,height)) print("休息一會") while(capture.isOpened()): ret, frame = capture.read() if False == ret: print("視頻播放完畢~~~") break gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', gray) if cv2.waitKey(30) == ord('q'): print("手動退出了~~~~") break

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      錄制視頻

      關于視頻四字節碼,可以去這個網站查看

      http://www.fourcc.org/codecs.php

      如下功能是讀取一個視頻,轉存成另一個視頻

      import cv2 # 定義編碼方式并創建VideoWriter對象 # 指定視頻編碼方式的四字節碼 ''' 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 ''' #視頻讀取 capture = cv2.VideoCapture('wzry.mp4') #獲取FPS video_fps = capture.get(cv2.CAP_PROP_FPS) #獲取寬度、高度 video_width = capture.get(cv2.CAP_PROP_FRAME_WIDTH) video_height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT) video_size =(int(video_width),int(video_height)) #獲取視頻編碼方式的四字節碼 codec = capture.get(cv2.CAP_PROP_FOURCC) #strcodec = chr(codec&0xFF) + chr((codec>>8)&0xFF) + chr((codec>>16)&0xFF) + chr((codec>>24)&0xFF) #print ('codec is ' + strcodec) outfile = cv2.VideoWriter('output.mp4', int(codec), video_fps, video_size) while(capture.isOpened()): ret, frame = capture.read() if ret: outfile.write(frame) # 寫入文件 cv2.imshow('frame', frame) if cv2.waitKey(1) == ord('q'): break else: break

      1

      (? ?_?)?[Python3 OpenCV4]3.視頻操作

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      OpenCV Python 視頻

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎么excel里的數字批量插入到文字里(excel在數字前批量加入文字)
      下一篇:WPS表格如何條件顯示數據(wps表格條件函數)
      相關文章
      亚洲第一黄色网址| 亚洲中文字幕无码av在线| 亚洲最大成人网色香蕉| 亚洲春色在线观看| 亚洲激情电影在线| 亚洲国产日韩在线| 亚洲三级视频在线| 精品亚洲国产成人| 亚洲色成人网站WWW永久四虎| 激情五月亚洲色图| 亚洲色精品VR一区区三区 | 亚洲国语在线视频手机在线| 亚洲色欲www综合网| 久久精品国产亚洲AV无码偷窥| 久久亚洲AV成人无码国产| 亚洲综合色丁香麻豆| 亚洲婷婷在线视频| 激情综合亚洲色婷婷五月APP| 亚洲国产系列一区二区三区| 国产人成亚洲第一网站在线播放| 国产亚洲精aa在线看| 日韩亚洲人成在线综合| 亚洲精品无码专区久久同性男| 亚洲人成网站色在线入口| 亚洲中文字幕无码爆乳AV| 亚洲AV无码一区二区三区DV| 亚洲四虎永久在线播放| 亚洲宅男天堂a在线| 亚洲人成电影网站色www| 国产精品亚洲综合网站| 亚洲色一色噜一噜噜噜| 亚洲国产另类久久久精品黑人 | 亚洲国产a∨无码中文777| 亚洲av丰满熟妇在线播放| 337p欧洲亚洲大胆艺术| 亚洲AV无码乱码在线观看代蜜桃| 亚洲乱人伦中文字幕无码| 亚洲国产小视频精品久久久三级 | 精品国产亚洲一区二区三区| 在线免费观看亚洲| 日本亚洲免费无线码|