国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV保存攝像頭視頻和視頻文件操作實(shí)戰(zhàn)(附Python源碼)

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV保存攝像頭視頻和視頻文件操作實(shí)戰(zhàn)(附Python源碼)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

需要源碼和視頻請(qǐng)點(diǎn)贊關(guān)注收藏后評(píng)論區(qū)留言私信~~~

在實(shí)際開發(fā)過程中,很多時(shí)候希望保存一段視頻,為此,OpenCV提供了VideoWriter類,下面先熟悉一下里面的各種方法

一、VideoWriter類

VideoWriter類的常用方法包括它的構(gòu)造方法,write方法和release方法 語法如下

VideoWriter object=cv2.VideoWriter(filename,fourcc,fps,frameSize)

filename 保存視頻時(shí)的路徑

fourcc 用4個(gè)字符寶石的視頻編碼格式

fps 幀速率

frameSize 每一幀的大小

使用cv2.VideoWriter_fourcc來確定視頻編碼格式

常用的視頻編碼格式opencv保存avi,OpenCV,opencv,計(jì)算機(jī)視覺,人工智能,音視頻,python?為了保存一段視頻 還需要使用write方法 語法如下

cv2.VideoWriter.write(frame)

frame 讀取到的幀

二、使用VideoWriter類實(shí)戰(zhàn)?

?使用VideoWriter類保存一段視頻需要經(jīng)過一下幾個(gè)步驟:創(chuàng)建VideoWriter類對(duì)象,寫入讀取到的幀,釋放VideoWriter類對(duì)象等,而且這段視頻既可以是攝像頭視頻,也可以是視頻文件,下面對(duì)保存攝像頭視頻和保存視頻文件進(jìn)行講解

下面保存一段攝像頭視頻

opencv保存avi,OpenCV,opencv,計(jì)算機(jī)視覺,人工智能,音視頻,python

import cv2

capture = cv2(0, cv2.CAP_DSHOW) # 打開筆記本內(nèi)置攝像頭
fourcc = cv2.VideWiter_fourcc('X', 'V', 'I', 'D') # 確定視頻被保存后的編碼格式
output = cv2.Vidoriter("output.avi", fourcc, 20, (640, 480)) # 創(chuàng)建VideoWriter類對(duì)象
while (capture.isOpened()): # 筆記本內(nèi)置攝像頭被打開后
    retval, frame = capture.read() # 從攝像頭中實(shí)時(shí)讀取視頻
    if retval = True: # 讀取到攝像頭視頻后
        outputrite(frame) # 在VideoWriter類對(duì)象中寫入讀取到的幀
        cv2.imsw("frame", frame) # 在窗口中顯示攝像頭視頻
    key = cv2.waitKey(1) # 窗口的圖像刷新時(shí)間為1毫秒
    if key == 27: # 如果按下Esc鍵
        break
capture.release() # 關(guān)閉筆記本內(nèi)置攝像頭
output.release( 釋放VideoWriter類對(duì)象
cv2.destroyAllWindows() # 銷毀顯示攝像頭視頻的窗口

下面保存一段時(shí)長為10秒的攝像頭視頻

opencv保存avi,OpenCV,opencv,計(jì)算機(jī)視覺,人工智能,音視頻,python

import cv2

capture = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 打開筆記本內(nèi)置攝像頭
fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D') # 確定視頻被保存后的編碼格式
fps = 20 # 幀速率
# 創(chuàng)建VideoWriter類對(duì)象
output = cVideoWriter("ten_Seconds.avi", fourcc, fps, (640, 480))
frame_Num = 10 * fps # 時(shí)長為10秒的攝像頭視頻含有的幀數(shù)
# 筆記本內(nèi)置攝像頭被打開且時(shí)長為10秒的攝像頭視頻含有的幀數(shù)大于0
while (capture.isOpened() and frame_Num > 0):
    retval, frame =apture.read() # 從攝像頭中實(shí)時(shí)讀取視頻
    if retval == True: # 讀取到攝像頭視頻后
        output.wrirame) # 在VideoWriter類對(duì)象中寫入讀取到的幀
        cv2.imshow("frame", frame) # 在窗口中顯示攝像頭視頻
    key = cv2.waitKey(1) # 窗口的圖像刷新時(shí)間為1毫秒
    frame_Num -= 1 # 時(shí)長為10秒的攝像頭視頻含有的幀數(shù)減少一幀
capture.release() # 關(guān)閉筆記本內(nèi)置攝像頭
output.release() # 釋放VideoWriter類對(duì)象
cv2.destroyAllWindows() # 銷毀顯示攝像頭視頻的窗口

下面保存一個(gè)視頻文件 讀取視頻文件后再保存當(dāng)當(dāng)前項(xiàng)目路徑下

部分代碼如下

import cv2

video = cv2.VideoCapture("公司宣傳.avi") # 打開視頻文件
fps = video.get(cv2.CAP_PROP_FPS) # 獲取視頻文件的幀速率
# 獲取視頻文件的幀大小
size = (int(video.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(video.gcv2.CAP_PROP_FRAME_HEIGHT)))
fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D') # 確定視頻被保存后的編碼格式
output = cv2("copy.avi", fourcc, fps, size) # 創(chuàng)建VideoWriter類對(duì)象
while (video.isOpe()): # 視頻文件被打開后
    retval, frame =video.read() # 讀取視頻文件
    if retval == True: # 讀取到視頻文件后
        output.wri(rame) # 在VideoWriter類對(duì)象中寫入讀取到的幀
    else:
        br
print("公司宣傳.avi已經(jīng)保存為PyCharm當(dāng)前項(xiàng)目路徑下的copy.avi。") # 控制臺(tái)輸出提示信息
video.release() # 關(guān)閉視頻文件
output.release() # 釋放VideoWriter類對(duì)象

保存視頻文件前十秒的視頻

import cv2

video = cv2.VideoCapture("公司宣傳.avi") # 打開視頻文件
fps = video.get(cv2.CAP_PROP_FPS) # 獲取視頻文件的幀速率
# 獲取視頻文件的幀大小
size = (int(video.g(cv2.CAP_PROP_FRAME_WIDTH)),
        int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)))
fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D') # 確定視頻被保存后的編碼格式
output = cv2.VideoWs #頻文件的前10秒視頻含有的幀數(shù)
# 視頻文件被打開后且視頻文件的前10秒視頻含有的幀數(shù)大于0
while (video.isOpene and frame_Num > 0):
    retval, fr= video.read() # 讀取視頻文件
    if retval == True: # 讀取到視頻文件后
        outpu.write(frame) # 在VideoWriter類對(duì)象中寫入讀取到的幀
    frame_Num -= 1 # 視頻文件的前10秒視頻含有的幀數(shù)減少一幀
# 控制臺(tái)輸出提示信息
print("公司宣傳.avi的前10s視頻已經(jīng)保存為PyCharm當(dāng)前項(xiàng)目路徑下的ten_Seconds.avi。")
video.release() # 關(guān)頻文件
output.release() # 釋放VideoWriter類對(duì)象

總結(jié)

視頻是由一系列連續(xù)的圖像構(gòu)成的,這一系列連續(xù)的圖像被稱作幀,幀是以固定的時(shí)間間隔從視頻中獲取的。因?yàn)橐曨l播放的速度就是獲取幀的速度,所以把視頻播放的速度稱作幀速率,其單位是幀/s(即1s內(nèi)出現(xiàn)的圖像數(shù))。所謂視頻處理,處理的對(duì)象就是從視頻中獲取的幀,而后使用圖像處理的方法對(duì)獲取的幀進(jìn)行處理

創(chuàng)作不易 覺得有幫助請(qǐng)點(diǎn)贊關(guān)注收藏~~~文章來源地址http://www.zghlxwxcb.cn/news/detail-722079.html

到了這里,關(guān)于OpenCV保存攝像頭視頻和視頻文件操作實(shí)戰(zhàn)(附Python源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • OpenCV基礎(chǔ)知識(shí)(9)— 視頻處理(讀取并顯示攝像頭視頻、播放視頻文件、保存視頻文件等)

    OpenCV基礎(chǔ)知識(shí)(9)— 視頻處理(讀取并顯示攝像頭視頻、播放視頻文件、保存視頻文件等)

    前言: Hello大家好,我是小哥談。 OpenCV不僅能夠處理圖像,還能夠處理視頻。視頻是由大量的圖像構(gòu)成的,這些圖像是以固定的時(shí)間間隔從視頻中獲取的。這樣,就能夠使用圖像處理的方法對(duì)這些圖像進(jìn)行處理,進(jìn)而達(dá)到處理視頻的目的。要想處理視頻,需要先對(duì)視頻進(jìn)行讀

    2024年02月11日
    瀏覽(28)
  • Opencv(C++)筆記--打開攝像頭、保存攝像頭視頻

    Opencv(C++)筆記--打開攝像頭、保存攝像頭視頻

    關(guān)鍵代碼語句: ① VideoCapture cam(0); ② cam.read(img); ③ imshow(\\\"cam\\\", img); 關(guān)鍵代碼: ①VideoWriter vw ②vw.open(): fourcc指定編碼格式(常見編碼方式)、 fps指定幀率、 Size指定大小 ③vw.write() 注:在Windows上執(zhí)行上述代碼可能會(huì)報(bào)以下錯(cuò)誤: 解決方法:在輸出的網(wǎng)址下載對(duì)應(yīng)版本的庫

    2024年02月11日
    瀏覽(24)
  • OpenCV 實(shí)現(xiàn)讀取攝像頭、視頻讀取保存 (C++)

    重點(diǎn)語句:VideoCapture、imshow 原理:使用VideoCapture語句讀取攝像頭,再利用while一次次將VideoCapture所讀取的數(shù)據(jù)利用imshow語句一幀幀地讀取出來 重點(diǎn)語句:VideoWriter 原理:在攝像頭讀取完圖之后,利用VideoWriter語句將圖像保存為固定格式 通過加入一個(gè)循環(huán)語句,按空格將圖片按

    2024年02月11日
    瀏覽(23)
  • opencv基礎(chǔ): 視頻,攝像頭讀取與保存的常用方法

    opencv基礎(chǔ): 視頻,攝像頭讀取與保存的常用方法

    當(dāng)然還可以從視頻中抓取截圖,所以現(xiàn)在聊一下常用的抓取視頻截圖的的方法。 上面有三種構(gòu)造方法, 第一種是無法構(gòu)造方法。 第二種參數(shù)device是一個(gè)數(shù)字。 一般筆記本如此寫cv2.VideoCapture(0); 因?yàn)槟J(rèn)是0 ,如果有多個(gè)攝像頭,就需要看設(shè)置的攝像頭代表的數(shù)字了。 第二種

    2024年02月09日
    瀏覽(28)
  • opencv入門到精通——圖片,視頻,攝像頭的讀取與保存

    opencv入門到精通——圖片,視頻,攝像頭的讀取與保存

    OpenCV是一個(gè)流行的開源計(jì)算機(jī)視覺庫,由英特爾公司發(fā)起發(fā)展。它提供了超過2500個(gè)優(yōu)化算法和許多工具包,可用于灰度、彩色、深度、基于特征和運(yùn)動(dòng)跟蹤等的圖像處理和計(jì)算機(jī)視覺應(yīng)用。OpenCV主要使用C++語言編寫,同時(shí)也支持Python、Java、C等語言。由于其開源和廣泛使用的

    2024年02月08日
    瀏覽(26)
  • OpenCV4(C++)—— 視頻和攝像頭的加載、顯示與保存

    ??視頻或攝像頭的加載是使用 cv::VideoCapture 類。(這個(gè)類和 ifstream 類比較相似,視頻或攝像頭的加載和文本文件操作是大致相同。主要步驟:(1)加載(打開)視頻或視像頭。(2) 判斷加載是否成功。 (3)讀取內(nèi)容。(4)關(guān)閉。) 注意: ??(1)VideoCapture類變量同時(shí)

    2024年02月06日
    瀏覽(22)
  • C#使用OpenCv(OpenCVSharp)使用攝像頭視頻顯示和錄制及圖片保存、本地視頻顯示

    本篇實(shí)例講解基于OpenCvSharp實(shí)現(xiàn)了攝像頭視頻顯示、錄制及截圖、視頻保存,本地視頻的顯示功能。 目錄 創(chuàng)建winform項(xiàng)目添加控件 NuGet安裝opencvsharp ?代碼 ?運(yùn)行效果 實(shí)例實(shí)現(xiàn)過程

    2024年02月15日
    瀏覽(27)
  • untiy 錄制網(wǎng)絡(luò)攝像頭視頻并保存到本地文件

    untiy 錄制網(wǎng)絡(luò)攝像頭視頻并保存到本地文件

    網(wǎng)絡(luò)攝像頭使用的是海康威視的,關(guān)于如何使用Ump插件播放海康威視r(shí)tsp視頻流,請(qǐng)參考我的這篇文章 內(nèi)部有ump插件的下載鏈接 untiy接入 ??低暰W(wǎng)絡(luò)攝像頭 錄屏使用的插件是 AVPro movieCapture 4.6.3版, 插件和完整工程的下載鏈接放在本文的最后 錄制攝像頭的實(shí)現(xiàn)思想為 1 um

    2023年04月09日
    瀏覽(21)
  • OpenCV VideoCapture使用方法(視頻文件、攝像頭、網(wǎng)絡(luò)視頻文件)

    cv::VideoCapture既支持視頻文件的讀取,也支持從攝像機(jī)中視頻的讀取。cv::VideoCapture對(duì)象的創(chuàng)建方式有以下三種: 方式一: ?? ?cv::VideoCapture capture( ?? ?const string filename, // 輸入視頻文件路徑名 ?? ?); 方式二: ?? ?cv::VideoCapture capture( ?? ?int device // 輸入攝像機(jī)視頻捕捉設(shè)備

    2024年02月06日
    瀏覽(28)
  • Opencv(C++)系列學(xué)習(xí)---讀取視頻文件和打開攝像頭

    Opencv(C++)系列學(xué)習(xí)---讀取視頻文件和打開攝像頭

    今天學(xué)習(xí)的這兩個(gè)內(nèi)容比較簡單,話不多說,直接上代碼! 目錄 【1】讀取視頻文件 【2】攝像頭讀取視頻 運(yùn)行結(jié)果: ?這段代碼較為簡單,有興趣的同學(xué)也可以挑戰(zhàn)一下,在視頻讀取上加個(gè)進(jìn)度條,可以通過鼠標(biāo)拖動(dòng)進(jìn)度條到指定位置,像平時(shí)我們用的視頻播放器一樣,主

    2024年02月16日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包