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

【Python】【OpenCV】視頻幀和攝像頭幀操作 and 窗口顯示

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

一、讀取寫(xiě)入視頻文件

 1 import cv2
 2 
 3 # 創(chuàng)建一個(gè)視屏捕獲對(duì)象
 4 videoCapture = cv2.VideoCapture('AVI.avi')
 5 
 6 # 獲取視頻的屬性值,cv2.CAP_PROP_FPS獲取視頻幀率
 7 fps = videoCapture.get(cv2.CAP_PROP_FPS)
 8 
 9 # cv2.CAP_PROP_FRAME_WIDTH/HEIGHT 返回float類型 獲取視頻幀的寬高
10 size = int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), \
11        int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT))
12 
13 '''
14 創(chuàng)建一個(gè)寫(xiě)入對(duì)象,將幀寫(xiě)入輸出的視頻
15 cv2.VideoWriter_fourcc()函數(shù)指定編碼器為 I420
16 fps 和 size 指定輸出的幀率和尺寸
17 '''
18 videoWrite = cv2.VideoWriter('Out.avi',
19                              cv2.VideoWriter_fourcc('I', '4', '2', '0'),
20                              fps, size
21                              )
22 
23 '''
24 對(duì)捕獲到的視頻對(duì)象進(jìn)行讀取幀,success表示是否成功讀取一幀,frame表示當(dāng)前幀。
25 循環(huán)讀取寫(xiě)入輸出視頻。
26 '''
27 success, frame = videoCapture.read()
28 while success:
29        videoWrite.write(frame)
30        success, frame = videoCapture.read()

?

二、捕獲攝像頭幀

 1 import cv2
 2 
 3 cameraCapture = cv2.VideoCapture(0)
 4 
 5 fps = 30
 6 
 7 size = int(cameraCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), \
 8         int(cameraCapture.get(cv2.CAP_PROP_FRAME_HEIGHT))
 9 
10 videoWriter = cv2.VideoWriter(
11     'OutVideo_GRAB.avi',
12     cv2.VideoWriter_fourcc('I', '4', '2', '0'),
13     fps,
14     size
15 )
16 
17 success, frame = cameraCapture.read()
18 
19 numFramesRemaining = 10 * fps
20 while success and numFramesRemaining > 0:
21     videoWriter.write(frame)
22     success, frame = cameraCapture.read()
23     numFramesRemaining -= 1

和視頻的讀取寫(xiě)入沒(méi)有什么差異,都是需要先創(chuàng)建一個(gè)VideoCapture Object來(lái)操作,下述是細(xì)微差別:

3? ?Line:VideoCapture(0),其中 0 代表設(shè)備,還可以1,2,3 分別代表不同的攝像頭(如果存在),也可以輸入網(wǎng)絡(luò)攝像頭,直接替換成URL即可

5? ?Line:需要手動(dòng)設(shè)置fps的值

19 Line:需要設(shè)定一個(gè)時(shí)間,numFramesRemaining代表持續(xù)捕獲300個(gè)幀,而每30個(gè)幀為一秒,所以將生成一個(gè)10秒鐘的視頻文件

?

三、窗口顯示圖片

1 import cv2
2 
3 img = cv2.imread('CopyPic.png')
4 cv2.imshow('', img)
5 cv2.waitKey()
6 cv2.destroyAllWindows()

?

?

四、窗口顯示攝像頭

 1 import cv2
 2 
 3 # 檢測(cè)窗口是否被點(diǎn)擊
 4 clicked = False
 5 
 6 
 7 # 定義鼠標(biāo)事件處理函數(shù)
 8 def onMouse(event: int, x, y, flags, param):
 9     global clicked
10     if event == cv2.EVENT_LBUTTONUP:
11         clicked = True
12 
13 
14 # 創(chuàng)建一個(gè)視頻對(duì)象
15 cameraCapture = cv2.VideoCapture(0)
16 # 定義窗口命
17 cv2.namedWindow('Camera')
18 # 將鼠標(biāo)回調(diào)函數(shù),將鼠標(biāo)事件處理函數(shù)和窗口關(guān)聯(lián)起來(lái)
19 cv2.setMouseCallback('Camera', onMouse)
20 
21 print('Showing camera feed. Click window or press any key to stop.')
22 # 獲取當(dāng)前時(shí)間的攝像頭幀
23 success, frame = cameraCapture.read()
24 
25 # 循環(huán)獲取當(dāng)前時(shí)間的攝像頭幀,當(dāng)按下任意按鍵 or 點(diǎn)擊鼠標(biāo)時(shí)則停止顯示
26 while success and cv2.waitKey(1) == -1 and not clicked:
27     cv2.imshow('Camera', frame)
28     success, frame = cameraCapture.read()
29 
30 # 關(guān)閉窗口
31 cv2.destroyAllWindows()
32 
33 # 釋放攝像頭資源
34 cameraCapture.release()

?

針對(duì)多攝像頭,我們需要先探明攝像頭的設(shè)備號(hào):

 1 import cv2
 2 
 3 for item in range(10):
 4     # 創(chuàng)建一個(gè)object
 5     camera = cv2.VideoCapture(item)
 6 
 7     # 查詢此攝像頭是否能打開(kāi),如果不能則跳過(guò),并輸出一條 Error Message
 8     if not camera.isOpened():
 9         print(f"Can\'t open camera {item}")
10         continue
11 
12     # 讀取攝像頭幀率
13     while True:
14         success, frame = camera.read()
15         # 當(dāng)攝像頭幀讀取失敗則跳過(guò)
16         if not success:
17             break
18 
19         cv2.imshow(f'Camera device number: {item}', frame)
20 
21         # 等待1毫秒,檢查用戶是否有鍵盤(pán)輸入‘q’
22         if cv2.waitKey(1) == ord('q'):
23             break
24 
25     camera.release()
26     cv2.destroyAllWindows()

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-747004.html

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

本文來(lái)自互聯(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)文章

  • 樹(shù)莓派利用python-opencv使用CSI攝像頭調(diào)用監(jiān)控視頻

    樹(shù)莓派利用python-opencv使用CSI攝像頭調(diào)用監(jiān)控視頻

    目錄 一、安裝python-opencv。 二、使用工具Xshell7和MobaXterm 三、連接并打開(kāi)CSI攝像頭 3.1連線如圖所示: 3.2打開(kāi)攝像頭 四、編寫(xiě)攝像頭代碼調(diào)用攝像頭 ? ? ? ? 一定要選擇配置好的安裝python-opencv,不要去配置安裝,然后還cmake編譯,沒(méi)有必要基本上安裝過(guò)程都會(huì)報(bào)2-3個(gè)錯(cuò)誤,還

    2023年04月17日
    瀏覽(29)
  • Opencv(C++)筆記--打開(kāi)攝像頭、保存攝像頭視頻

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

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

    2024年02月11日
    瀏覽(24)
  • 【opencv+圖像處理】(Gui Features in OpenCV) 1-1攝像頭:采集攝像頭視頻,讀取視頻幀,錄制視頻

    【opencv+圖像處理】(Gui Features in OpenCV) 1-1攝像頭:采集攝像頭視頻,讀取視頻幀,錄制視頻

    本專欄代碼總庫(kù)地址 https://github.com/xiawei20161308104/xv_opencv_tutorials 本節(jié)代碼路徑 xv_opencv_tutorials/VideoRelated/get_started_with_videos.py xv_opencv_tutorials/VideoRelated/get_and_set_video.py xv_opencv_tutorials/VideoRelated/save_video.py 參考官網(wǎng) https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html 從設(shè)備,可以是攝像

    2024年02月03日
    瀏覽(20)
  • OpenCV(視頻加載與攝像頭使用)

    OpenCV(視頻加載與攝像頭使用)

    目錄 1、VideoCapture類 2、視頻屬性get()? 3、視屏文件保存

    2024年02月12日
    瀏覽(24)
  • 4.通過(guò)Opencv采集攝像頭視頻數(shù)據(jù)

    4.通過(guò)Opencv采集攝像頭視頻數(shù)據(jù)

    VideoCapture() 虛擬采集器,一般設(shè)備號(hào)從0開(kāi)始 cap.read() 讀取視頻幀 返回值有兩個(gè),第一個(gè)為狀態(tài)值,讀到幀為true 第二個(gè)值為視頻幀 cap.release() 釋放資源 示例程序: 運(yùn)行結(jié)果: 從視頻文件中讀取視頻幀 只處理視頻,不處理音頻,所以讀取到的視頻沒(méi)有聲音 播放速度設(shè)置 Vi

    2023年04月22日
    瀏覽(23)
  • OpenCv:采集攝像頭視頻、讀取視頻幀與視頻錄制

    目錄 一、涉及OpenCv函數(shù) 二、什么是幀、幀的大小代表什么 三、攝像頭獲取視頻數(shù)據(jù) 四、錄制視頻并保存 從設(shè)備,可以是攝像頭可以是本地視頻, 獲取視頻的函數(shù) cv.VideoCapture()。 本函數(shù)作用在于創(chuàng)建一個(gè)VideoCapture或者VideoWriter對(duì)象,真正的讀取和寫(xiě)入是通過(guò)創(chuàng)建的對(duì)象進(jìn)行

    2024年02月16日
    瀏覽(30)
  • 基于opencv的人臉檢測(cè)(圖片、視頻、攝像頭)

    基于opencv的人臉檢測(cè)(圖片、視頻、攝像頭)

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 目錄 前言 一、檢測(cè)圖片中的人臉 二、檢測(cè)視頻與攝像頭中的人臉 總結(jié) 人臉檢測(cè)識(shí)別一直是個(gè)熱門(mén)的研究問(wèn)題,同時(shí)也是opencv中一個(gè)實(shí)現(xiàn)相對(duì)容易的課題。 OpenCV自帶了函數(shù)detectMultiScale()可以實(shí)現(xiàn)對(duì)行人

    2024年02月13日
    瀏覽(20)
  • OpenCV獲取網(wǎng)絡(luò)攝像頭實(shí)時(shí)視頻流

    參考文章: [常用工具] OpenCV獲取網(wǎng)絡(luò)攝像頭實(shí)時(shí)視頻流_opencv網(wǎng)絡(luò)攝像頭 [常用工具] OpenCV獲取網(wǎng)絡(luò)攝像頭實(shí)時(shí)視頻流_opencv網(wǎng)絡(luò)攝像頭_落痕的寒假的博客-CSDN博客 在使用OpenCv處理視頻時(shí),無(wú)論是視頻文件還是攝像頭畫(huà)面,都要使用VideoCapture類來(lái)進(jìn)行每一幀圖像的處理。當(dāng)我們

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

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

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

    2024年02月08日
    瀏覽(28)
  • openCV使用c#操作攝像頭

    openCV使用c#操作攝像頭

    效果如下: 1.創(chuàng)建一個(gè)winform的窗體項(xiàng)目(框架.NET Framework 4.7.2) 2.Nuget引入opencv的c#程序包(版本最好和我一致) 3.后臺(tái)代碼

    2024年02月13日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包