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

opencv基本操作二(讀取視頻流與保存視頻、讀取攝像頭并保存視頻)

這篇具有很好參考價值的文章主要介紹了opencv基本操作二(讀取視頻流與保存視頻、讀取攝像頭并保存視頻)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

要點

  • opencv常用讀視頻函數(shù) cv2.VideoCapture 、cv2.VideoCapture.get 等,可以參考這里
  • opencv常用寫視頻函數(shù) cv2.VideoWriter 等可以參考這里 ,其中視頻格式可以參考這里
  • videoCapture.read() 是按幀讀取視頻,ret,frame 是獲 .read() 方法的兩個返回值。其中 ret 是布爾值,如果讀取幀是正確的則返回True,如果文件讀取到結(jié)尾,它的返回值就為False。frame 就是每一幀的圖像,是個三維矩陣。
  • 可以使用 cv2.putText 來添加文字,具體參數(shù)可以參考這里

代碼

例程一

  • 本例程將讀取一個視頻,并個視頻加上流動水印后保存為一個新視頻。
import cv2

#讀取視頻并獲取視頻幀率、分辨率、總幀數(shù)
VideoCapture = cv2.VideoCapture("VideoExample.mp4")
fps = VideoCapture.get(cv2.CAP_PROP_FPS)
size = (int(VideoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(VideoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
totalFrames = int(VideoCapture.get(7))

#創(chuàng)建新視頻
ViideoWrite = cv2.VideoWriter("VideoWriterExample.avi",cv2.VideoWriter_fourcc('I','4','2','0'),
                              fps,size)

x=10 #水印坐標(biāo)
y=10 #水印坐標(biāo)
i=1
step_x=5
step_y=5

success,frame = VideoCapture.read() #讀取視頻第一幀
print("第"+str(i)+"幀, 共"+str(totalFrames)+"幀")
while success:
        cv2.waitKey(1)
        # 給圖片添加水印
        cv2.putText(frame,'hello,opencv',(x,y),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0),3)
        cv2.imshow("frame",frame)
        ViideoWrite.write(frame) #給新視頻添加新幀

        # 水印坐標(biāo)變化
        if(x>size[0]):step_x=-5
        if(x<0):step_x=5
        if(y>size[1]):step_y=-5
        if(y<0):step_y=5
        x += step_x
        y += step_y
        success,frame = VideoCapture.read()
        i += 1
        print("第"+str(i)+"幀, 共"+str(totalFrames)+"幀")

print ('Quitted!') #提示程序已停止
cv2.destroyAllWindows() #程序停止前關(guān)閉所有窗口

例程二

  • 本例程將讀取并顯示攝像頭圖像,在圖像窗口按下按鍵“S”將開始錄制攝像頭視頻,按下按鍵“X”將停止錄制攝像頭視頻,按下按鍵“Q”將停止程序。
import cv2

#讀取視頻并獲取視頻幀率、分辨率
cameraCapture  = cv2.VideoCapture(0)
fps = cameraCapture .get(5)
size = (int(cameraCapture .get(cv2.CAP_PROP_FRAME_WIDTH)),int(cameraCapture .get(cv2.CAP_PROP_FRAME_HEIGHT)),)


#創(chuàng)建新視頻
cameraWriter = cv2.VideoWriter("CameraExample.avi",cv2.VideoWriter_fourcc('I','4','2','0'),fps,size)


x=10 #水印坐標(biāo)
y=10 #水印坐標(biāo)
i=1
step_x=5
step_y=5

#讀取視頻第一幀
success,frame = cameraCapture.read()


#提示停止方法
print ('Showing camera. Press key "Q" to quit.')
print ('Press key "S" to start recording.')
Quit=1 #是否繼續(xù)運行標(biāo)志位
Record=0 #錄制視頻標(biāo)志位

while success and Quit:
    keycode=cv2.waitKey(1)
    if keycode & 0xFF == ord('q'): #如果按下“Q”鍵,停止運行標(biāo)志位置1,跳出while循環(huán),程序停止運行
        Quit = 0
    if keycode & 0xFF == ord('s'): #如果按下“S”鍵,開始錄制攝像頭視頻
        Record = 1
    if keycode & 0xFF == ord('x'): #如果按下“X”鍵,停止錄制攝像頭視頻
        Record = 0

    if Record:

        # 給圖片添加水印
        cv2.putText(frame,'hello,opencv',(x,y),cv2.FONT_HERSHEY_SIMPLEX,3,(0,255,255),3)
        cameraWriter.write(frame)# 給新視頻添加新幀
        # 水印坐標(biāo)變化
        if x > size[0]:
            step_x = -5
        if x < 0:
            step_x = 5
        if y > size[1]:
            step_y = -5
        if y < 0:
            step_y = 5
        x += step_x
        y += step_y
        print("第" + str(i) + "幀,")
        i = i + 1
        print('Press key "X" to end recording.')
        print("\n\t")

    cv2.imshow('frame',frame)
    success,frame = cameraCapture.read() # 逐幀讀取視頻

if success == 0: #提示由于攝像頭讀取失敗停止程序
    print ('Camera disconnect !')
print('Quitted!')  # 提示程序已停止
#釋放攝像頭
cameraCapture.release()
#程序停止前關(guān)閉所有窗口
cv2.destroyAllWindows()

文章來源地址http://www.zghlxwxcb.cn/news/detail-402398.html

到了這里,關(guān)于opencv基本操作二(讀取視頻流與保存視頻、讀取攝像頭并保存視頻)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【精選】基于OpenCV的實時視頻流車牌識別(源碼&教程)

    【精選】基于OpenCV的實時視頻流車牌識別(源碼&教程)

    近年來,智能交通系統(tǒng)(ITS)在我國應(yīng)用日益廣泛。作為ITS重要組成部分的自動車牌識別系統(tǒng)在交通流量檢測、交通誘導(dǎo)控制、違章車輛監(jiān)控等方面有著廣泛的應(yīng)用,是確保道路安全暢通的重要手段,也為統(tǒng)計有關(guān)資料,為管理者決策提供有效數(shù)字依據(jù)的重要途徑。由于一般的識別系

    2024年01月23日
    瀏覽(94)
  • OpenCV基本操(IO操作,讀取、顯示、保存)

    OpenCV基本操(IO操作,讀取、顯示、保存)

    參數(shù): 要讀取的圖像 讀取圖像的方式: cv.IMREAD*COLOR :以彩色模式加載圖像,任何圖像的圖像的透明度都將被忽略。這是默認(rèn)參數(shù) 標(biāo)志: 1 cv.IMREAD*GRAYSCALE :以灰度模式加載圖像 標(biāo)志: 0 cv.IMREAD_UNCHANGED :包括alpha通道(透明通道)的加載圖像模式。 標(biāo)志: -1 可以使用 1、0或者

    2024年02月10日
    瀏覽(96)
  • RTSP視頻流相關(guān)的一些操作

    RTSP視頻流相關(guān)的一些操作

    端口554在網(wǎng)絡(luò)通信中用于Real Time Streaming Protocol(RTSP)。 嘗試使用 v4l2 去解碼 https://gstreamer.freedesktop.org/documentation/tutorials/playback/hardware-accelerated-video-decoding.html?gi-language=c https://github.com/uutzinger/camera/blob/master/RTSP_RTP_gstreamer.md Ubuntu18.04 x86-64 使用 rtsp 流去做推理 nnstreamer_example_obj

    2024年02月12日
    瀏覽(94)
  • 基于OpenCv+Django的網(wǎng)絡(luò)實時視頻流傳輸(前后端分離)

    基于OpenCv+Django的網(wǎng)絡(luò)實時視頻流傳輸(前后端分離)

    秋風(fēng)閣——北溪入江流:https://focus-wind.com/ 秋風(fēng)閣——基于OpenCv+Django的網(wǎng)絡(luò)實時視頻流傳輸(前后端分離) 使用OpenCv捕獲攝像機畫面后,我們有時候需要將畫面顯示在界面上。本博客基于Django的前后端分離模式,將視頻流從后端讀取,傳送給前端顯示。 在使用Django進行視頻

    2024年02月08日
    瀏覽(93)
  • 樹莓派學(xué)習(xí):學(xué)習(xí)opencv+用opencv獲取樹莓派mjpg攝像頭視頻流

    目錄 前提步驟 打開樹莓派攝像頭 查看是否有圖像,登錄游覽器打開樹莓派IP地址的8080端口 獲取mjpg的視頻流url 代碼 先設(shè)定好mjpg的視頻流的url 利用opencv庫中的v2.VideoCapture類讀取mjpg視頻流? ?cv2.VideoCapture() 檢查攝像頭是否成功打開,如果沒有,則打印錯誤消息并退出程序?

    2024年02月03日
    瀏覽(98)
  • 一種在 Python 中實現(xiàn)更快 OpenCV 視頻流的多線程方法

    一種在 Python 中實現(xiàn)更快 OpenCV 視頻流的多線程方法

    概述 在本文中,我們將看到兩個沒有多線程的 Python 代碼示例,用于從攝像頭讀取視頻幀。我們將看到使用/不使用多線程獲得的 FPS 的差異。 什么是多線程? 線程是進程中的一個執(zhí)行單元。多線程是指通過在線程之間快速切換對 CPU 的控制(稱為上下文切換)來并發(fā)執(zhí)行多個

    2024年02月16日
    瀏覽(96)
  • VS+QT+Opencv使用YOLOv4對視頻流進行目標(biāo)檢測

    對單張圖像的檢測,請參考:https://blog.csdn.net/qq_45445740/article/details/109659938

    2024年02月12日
    瀏覽(92)
  • 使用Flask+OpenCV實現(xiàn)瀏覽器/微信小程序的視頻流傳輸

    前言 一、 Flask+瀏覽器實現(xiàn) 二、 Flask+微信小程序?qū)崿F(xiàn) 三、Flask+uni-app小程序?qū)崿F(xiàn) 后記 近期在做的東西涉及到實時視頻的處理,碰到一些問題,因此將之記錄下來,便于日后翻看,同時也希望能給遇到同樣問題的小伙伴提供幫助。 實現(xiàn)代碼如下: 分為 app.py 和index.html。 1. F

    2024年02月06日
    瀏覽(167)
  • WSL2通過OpenCV調(diào)用并展示本機攝像頭的RTSP視頻流

    WSL2通過OpenCV調(diào)用并展示本機攝像頭的RTSP視頻流

    本篇博客的由來如上圖哈哈,WSL2 相關(guān)安裝教程可以參考我之前的博客:Win11安裝WSL2和Nvidia驅(qū)動 更多文章歡迎來我的博客小站看呀,會有更多的技術(shù)細(xì)節(jié)~ ubuntu上請執(zhí)行 或者編譯安裝 如果報錯 Could NOT find OpenSSL ,安裝如下依賴即可解決 下載解壓 EasyDarwin Easydarwin是國內(nèi)團隊開

    2024年02月09日
    瀏覽(106)
  • 【jetson 硬解碼】使用NVDEC模塊解碼rtsp視頻流,超低時延、比opencv更快、資源更少

    1、jetson系統(tǒng):32.7.1, 2、jetpack:4.6.1, 3、deepstream:6.0.1, FastDeploy 問題1:

    2024年02月14日
    瀏覽(149)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包