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

OpenCv:采集攝像頭視頻、讀取視頻幀與視頻錄制

這篇具有很好參考價(jià)值的文章主要介紹了OpenCv:采集攝像頭視頻、讀取視頻幀與視頻錄制。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、涉及OpenCv函數(shù)

二、什么是幀、幀的大小代表什么

三、攝像頭獲取視頻數(shù)據(jù)

四、錄制視頻并保存


一、涉及OpenCv函數(shù)

從設(shè)備,可以是攝像頭可以是本地視頻,獲取視頻的函數(shù) cv.VideoCapture()。本函數(shù)作用在于創(chuàng)建一個(gè)VideoCapture或者VideoWriter對象,真正的讀取和寫入是通過創(chuàng)建的對象進(jìn)行read和write的調(diào)用的。視頻可以采用不同的格式,如AVI,MP4,MOV等,這些格式定義了視頻文件的編碼方式、分辨率、幀率等參數(shù)。

  • 視頻寫入函數(shù)?cv.VideoWriter()
  • 讀取視頻/打開攝像頭?cv.VideoCapture()
  • 寫入視頻 cv.VideoWriter()
  • 打開,判斷是否打開isOpened () open()
  • 獲取參數(shù),更改參數(shù) cv.VideoCapture.get(propId) cv.VideoCapture.set(propId, value)
  • 釋放視頻 cv.VideoCapture.release()
    ?

二、什么是幀、幀的大小代表什么

?視頻的基本組成部分是幀(frame),即一系列靜態(tài)圖像,這些圖像在一定速率下以連續(xù)的方式播放,形成動(dòng)態(tài)圖像,例如30幀/秒。視頻每秒的幀數(shù)被稱為幀率(Frame Rate),通常用“fps”(Frames Per Second)表示。例如,30fps表示視頻每秒鐘包含30幀圖像。幀率決定了視頻的流暢度和真實(shí)感。較高的幀率可以使視頻看起來更加流暢,因?yàn)樗鼈兛梢愿斓厮⑿聢D像。例如,60fps的視頻比30fps的視頻看起來更加流暢。此外,較高的幀率還可以減少視頻中的模糊和顫動(dòng),因?yàn)樗鼈兛梢愿玫夭蹲竭\(yùn)動(dòng)。但較高的幀率會(huì)導(dǎo)致文件變大和編解碼更復(fù)雜,因?yàn)樾枰幚砀嗟膸瑘D像。30幀即代表一秒展現(xiàn)30張圖片

三、攝像頭獲取視頻數(shù)據(jù)

代碼:

import cv2 as cv

# 創(chuàng)建VideoCapture對象,用創(chuàng)建的對象去做之后的操作
cap = cv.VideoCapture(0)
# 檢測有無攝像頭正常使用
# 這是一個(gè)必要的驗(yàn)證,當(dāng)cap為空的時(shí)候,后續(xù)調(diào)用會(huì)報(bào)錯(cuò)。
if not cap.isOpened():
    print("Cannot open camera")
    exit()

# 獲取視頻流是一個(gè)連續(xù)的循環(huán)過程,一直在獲取,不是說獲取到一幀就可以了
while True:
    # 通過創(chuàng)建的VideoCapture對象逐幀獲取視頻,會(huì)返回兩個(gè)參數(shù),ret返回true和false代表是否正常獲取到幀,以及視頻是否結(jié)束
    # frame代表獲取到的幀
    ret, frame = cap.read()
    # if frame is read correctly ret is True
    if not ret:
        print("不能正常讀取視頻幀")
        break
    # 將獲取到的視頻幀,也就是一幅幅圖像,轉(zhuǎn)為灰度圖
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    # 展示
    cv.imshow('frame', gray)
    # q退出獲取視頻流
    if cv.waitKey(1) == ord('q'):
        break
# 釋放資源
cap.release()
cv.destroyAllWindows()

四、錄制視頻并保存

代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-564660.html

import cv2


# 視頻的本質(zhì)上就是由一幅一幅的圖片組成
# 24幀 60幀(表示一秒顯示60張圖片)


# 創(chuàng)建一個(gè)窗口
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.resizeWindow('video',640,480)

# 打開攝像頭
cap = cv2.VideoCapture(0)
# 打開視頻
# cap = cv2.VideoCapture('1.mp4')
# 保存視頻
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
vw = cv2.VideoWriter('123.mp4',fourcc,30,(640,480))



# 循環(huán)讀取攝像頭的每一幀
while True:
    # 讀一幀數(shù)據(jù),返回標(biāo)記,True表示讀到了數(shù)據(jù),F(xiàn)alse表示沒讀到數(shù)據(jù)
    ret,frame = cap.read()

    #可以根據(jù)ret做個(gè)判斷
    if not ret:
        #沒讀到數(shù)據(jù),直接退出
        break
    vw.write(frame)
#     顯示數(shù)據(jù)
    cv2.imshow('video',frame)

    key = cv2.waitKey(1000 // 30)
    if key & 0xFF == ord('q'):
        break

# 釋放資源
cap.release()
vw.release()
cv2.destroyAllWindows()


到了這里,關(guān)于OpenCv:采集攝像頭視頻、讀取視頻幀與視頻錄制的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • opencv從視頻文件讀取視頻內(nèi)容,從攝像頭讀取保存視頻內(nèi)容

    opencv從視頻文件讀取視頻內(nèi)容,從攝像頭讀取保存視頻內(nèi)容

    (1)argparse模塊使編寫用戶友好的命令行接口變得容易。 (2)程序定義了它需要的參數(shù),而argparse將找出如何從sys.argv中解析這些參數(shù)。 (3)argparse模塊還會(huì)自動(dòng)生成幫助和使用消息,并在用戶給程序提供無效參數(shù)時(shí)發(fā)出錯(cuò)誤信息。 import argparse # 導(dǎo)入庫 parser = argparse.Argume

    2024年02月22日
    瀏覽(28)
  • 使用OpenCV調(diào)用攝像頭和讀取視頻圖片

    使用OpenCV調(diào)用攝像頭和讀取視頻圖片

    要捕獲視頻,你需要?jiǎng)?chuàng)建一個(gè) VideoCapture 對象。它的參數(shù)是設(shè)備索引的名稱。設(shè)備索引就是指定哪個(gè)攝像頭的數(shù)字。正常情況下,內(nèi)部攝像頭可以通過傳入0來調(diào)用,傳遞1來選擇外置的第二個(gè)相機(jī),以此類推。在此之后,你可以逐幀捕獲。但是在最后,不要忘記釋放俘虜。 直

    2024年02月08日
    瀏覽(28)
  • 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常用 讀視頻函數(shù) cv2.VideoCapture 、 cv2.VideoCapture.get 等,可以參考這里 opencv常用 寫視頻函數(shù) cv2.VideoWriter 等可以參考這里 ,其中視頻格式可以參考這里 videoCapture.read() 是按幀讀取視頻, ret,frame 是獲 .read() 方法的兩個(gè)返回值。其中 ret 是布爾值,如果讀取幀是正確的則返回

    2023年04月08日
    瀏覽(379)
  • OpenCV 視頻處理(關(guān)于攝像頭和視頻文件的讀取、顯示、保存等等)

    OpenCV 視頻處理(關(guān)于攝像頭和視頻文件的讀取、顯示、保存等等)

    OpenCV不僅能夠處理圖像,還能夠處理視頻 視頻是由大量的圖像構(gòu)成的 ,這些圖像是以固定的時(shí)間間隔從視頻中獲取的。這樣,就能夠使用圖像處理的方法對這些圖像進(jìn)行處理,進(jìn)而達(dá)到處理視頻的目的。要想處理視頻,需要先對視頻進(jìn)行讀取、顯示、保存等相關(guān)操作。為此

    2024年03月14日
    瀏覽(23)
  • VC++中使用OpenCV讀取圖像、讀取本地視頻、讀取攝像頭并實(shí)時(shí)顯示

    VC++中使用OpenCV讀取圖像、讀取本地視頻、讀取攝像頭并實(shí)時(shí)顯示

    最近閑著跟著油管博主murtazahassan,學(xué)習(xí)了一下LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision,對應(yīng)的Github源代碼地址為:Learn-OpenCV-cpp-in-4-Hours OpenCV是一個(gè)開源的計(jì)算機(jī)視覺庫,其官網(wǎng)地址為:https://opencv.org/,對應(yīng)Github源碼地址為:https://github.com/opencv/opencv,目前來說

    2024年01月17日
    瀏覽(35)
  • 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)
  • 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)
  • cv2.VideoCapture使用,opencv讀取攝像頭,視頻圖像

    ????????cv2.VideoCapture()用于讀取視頻,也可以用于讀取攝像頭圖像。 ????????上面的2種寫法,第一種表示讀取攝像頭,第二種讀取視頻文件,返回值就是視頻數(shù)據(jù)。 ????????在讀取到視頻后,可以使用isOpened方法來判斷視頻是否能夠打開,能打開返回True,不能夠打

    2024年02月12日
    瀏覽(27)
  • OpenCV中讀取、顯示、保存攝像頭視頻講解與實(shí)戰(zhàn)(附Python源碼)

    OpenCV中讀取、顯示、保存攝像頭視頻講解與實(shí)戰(zhàn)(附Python源碼)

    需要源碼請點(diǎn)贊關(guān)注收藏后評(píng)論區(qū)留言私信~~~ OpenCV不僅能夠處理圖像,還能夠處理視頻。視頻是由大量的圖像構(gòu)成的,這些圖像以固定的時(shí)間間隔從視頻中獲取。這樣,就能夠使用圖像處理的方法對這些圖像進(jìn)行處理,進(jìn)而達(dá)到處理視頻的目的。要處理視頻,需要先對視頻進(jìn)

    2024年02月05日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包