【P14 3-6 】OpenCV Python——視頻加載、攝像頭調用、視頻基本信息獲取(寬、高、幀率、總幀數),視頻保存在指定位置

文章目錄

  • 1 讀取本地視頻
    • 1.1 絕對路徑 6種方式
    • 1.2 相對路徑 4種方式
    • 1.3 讀取本地視頻
  • 2 視頻基本信息
  • 3 調用攝像頭 并將視頻保存在指定位置

P14 3-6

1 讀取本地視頻

現在要讀取本地視頻“video.mp4”,

視頻文件“video.mp4”和playVideo.py腳本文件,都在同一個目錄E:\\Test_py\\opencv_python\\基本操作\\下面。

在這里插入圖片描述

1.1 絕對路徑 6種方式

#cap=cv2.VideoCapture("E:\\Test_py\\opencv_python\\基本操作\\video.mp4")
#cap=cv2.VideoCapture('E:\\Test_py\\opencv_python\\基本操作\\video.mp4')#cap=cv2.VideoCapture("E://Test_py//opencv_python//基本操作//video.mp4")
#cap=cv2.VideoCapture('E://Test_py//opencv_python//基本操作//video.mp4')#cap=cv2.VideoCapture("E:/Test_py/opencv_python/基本操作/video.mp4")
cap=cv2.VideoCapture('E:/Test_py/opencv_python/基本操作/video.mp4')

1.2 相對路徑 4種方式

#cap=cv2.VideoCapture('video.mp4')
#cap=cv2.VideoCapture('./video.mp4')
#cap=cv2.VideoCapture('.//video.mp4')
cap=cv2.VideoCapture('.\\video.mp4')

1.3 讀取本地視頻

import cv2
from cv2 import WINDOW_NORMAL
import numpy as np#cv2.namedWindow('video',WINDOW_NORMAL)cap=cv2.VideoCapture('video.mp4')while True:ret,frame=cap.read()cv2.imshow('video',frame)key=cv2.waitKey(20)#當按下q鍵,退出視頻,qASCII值=113,Q=81,還可以寫成ord('q')#if(key & 0xff ==ord('q')):if key in (113, 81): breakcv2.destroyWindow()

在這里插入圖片描述

2 視頻基本信息


if(cap.read()):w=cap.get(CAP_PROP_FRAME_WIDTH)h=cap.get(CAP_PROP_FRAME_HEIGHT)fps=cap.get(CAP_PROP_FPS)count=cap.get(CAP_PROP_FRAME_COUNT)print('視頻中圖像寬度:%d' %(w))print('視頻中圖像高度:%d' %(w))print('視頻的幀率:%d' %(fps))print('視頻總幀數:%d' %(count))

在這里插入圖片描述

3 調用攝像頭 并將視頻保存在指定位置

import cv2#創建VideoWriter為寫多媒體文件
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
vw = cv2.VideoWriter('./out.mp4', fourcc, 25, (1280, 720))#創建窗口
cv2.namedWindow('video', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video', 640, 360)#獲取視頻設備/從視頻文件中讀取視頻幀
cap = cv2.VideoCapture(0)#判斷攝像頭是否為打開關態
while cap.isOpened():#從攝像頭讀視頻幀ret, frame = cap.read()if ret == True:#將視頻幀在窗口中顯示cv2.imshow('video', frame)#重新將窗口設備為指定大小cv2.resizeWindow('video', 640, 360)#寫數據到多媒體文件vw.write(frame)#等待鍵盤事件,如果為q,退出key = cv2.waitKey(1)if(key & 0xFF == ord('q')):breakelse:break#釋放VideoCapture
cap.release()#釋放VideoWriter
vw.release()#vw.release()
cv2.destroyAllWindows()

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93443.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93443.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93443.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【DL學習筆記】常用數據集總結

一、如何找數據集 paperswithcode,但好像沒了 AutoDL Roboflow Kaggle Hungging Face 百度飛漿PP AIStudio 二、目標檢測數據集格式 常用數據集坐標格式 MSCOCO : 坐標格式(x,y,w,h&#xff…

19.3 Transformers量化模型極速加載指南:4倍推理加速+75%顯存節省實戰

Transformers量化模型極速加載指南:4倍推理加速+75%顯存節省實戰 實戰項目:模型量化 Transformers 兼容性配置 量化模型加載核心配置邏輯 #mermaid-svg-rDjfMigtxckLYWp3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merm…

Android 終端接入 GB28181 國標視頻平臺的完整解決方案解析

1. 引言:讓 Android 終端無縫融入國標視頻網絡在公安、交通、應急、工業、教育等領域,GB/T 28181 國標協議早已成為視頻監控與指揮調度的事實標準。傳統國標視頻網絡通常由固定部署的 IPC 攝像機、NVR、視頻管理平臺構成,設備形態單一。隨著一…

Docker目錄的遷移

# 遷移 docker 目錄 (無論容器與鏡像占用空間大小,哪怕只占用1G,也需用此方式,否則可能遷移不成功)service docker stopcd /var/lib/docker# 一個一個復制除 overlay2 外的其他所有文件夾cp -R builder /home/docker/l…

IOS APP 前端存儲

UserDefaults優點簡單易用提供簡單的鍵值對存儲接口無需復雜配置,開箱即用適合存儲少量簡單數據輕量級專門為存儲小量數據設計內存占用小性能開銷低自動持久化數據自動保存到磁盤應用重啟后數據仍然可用通過synchronize()方法可以強制立即寫入(iOS 12已自…

在前端js中使用jsPDF或react-to-pdf生成pdf文件時,不使用默認下載,而是存儲到服務器

開源地址: https://github.com/ivmarcos/react-to-pdf 主要就是這個方法,有三種可選: 默認是save,也就是會自動觸發下載的方法,open方法是默認會打開一個pdf預覽的tab頁面,build方法就是在調用的函數gener…

會議征稿!IOP出版|第二屆人工智能、光電子學與光學技術國際研討會(AIOT2025)

往屆已EI檢索,歡迎投稿! AIOT2024會后兩個月實現見刊! AIOT2025已通過IOP-JPCS出版申請,獨立JPCS出版 AIOT2025已上線西安文理學院官網: 征文通知|第二屆人工智能、光電子學與光學技術國際…

CPP多線程2:多線程競爭與死鎖問題

在多線程編程中,多個線程協同工作能顯著提升程序效率,但當它們需要共享和操作同一資源時,潛在的問題也隨之而來;線程間的執行順序不確定性可能導致資源競爭,可能引發死鎖,讓程序陷入停滯。 多線程競爭問題示…

全國產飛騰d2000+復旦微690t信號處理模塊

UD VPX-404是基于高速模擬/數字采集回放、FPGA信號實時處理、CPU主控、高速SSD實時存儲架構開發的一款高度集成的信號處理組合模塊,采用6U VPX架構,模塊裝上外殼即為獨立整機,方便用戶二次開發。 UD VPX-404模塊的國產率可達到100%&#xff0…

物聯網 (IoT) 的頂級硬件平臺

物聯網 (IoT) 的頂級硬件平臺IoT(物聯網)不再是一個流行詞。隨著每天出現幾個鼓舞人心的用例,多家公司現在正在探索如何利用該技術實現業務增長。無論實施何種其他技術,基于物聯網的新設備正迅速成為一項重…

TCP傳輸層協議(4)

TCP應用層協議(4) 流量控制 接收端處理數據的速度是有限的. 如果發送端發的太快, 導致接收端的緩沖區被打滿, 這個時候如果發送端繼續發送, 就會造成丟包, 繼而引起丟包重傳等等一系列連鎖反應. 因此 TCP 支持根據接收端的處理能力, 來決定發送端的發送速…

雙向SSL認證之Apache實戰配置

防御未授權訪問,為企業級應用構筑雙重身份驗證防線 本文是關于Apache配置雙向SSL認證的深度技術指南,包含全流程操作、調試技巧及企業級解決方案,適用于運維工程師和安全管理員。 1.為什么需要雙向認證 ? 核心價值 &#x1f51…

JavaScript 實用工具方法小全

1. 精確獲取小數位數/*** 獲取數字的小數位數(支持科學計數法)* param {number|string} num - 要檢查的數字,可以是數字或字符串形式* returns {number} 返回小數部分的位數* * 實現原理:* 1. 處理科學計數法(如1.23e-…

【易錯題】C語言

今日遇到的易錯題 #include <stdio.h> int i;//全局變量默認初始化是0 int main() {i--;//-1if (i > sizeof(i)){printf(">\n");}else{printf("<\n");}return 0; }易錯點&#xff1a;sizeof的返回值類型實際為無符號整形&#xff0c;因此編…

第七十五章:AI的“思維操控師”:Prompt變動對潛在空間(Latent Space)的影響可視化——看懂AI的“微言大義”!

Prompt變動對潛在空間影響前言&#xff1a;AI的“思維操控師”——Prompt變動對潛在空間的影響可視化&#xff01;第一章&#xff1a;痛點直擊——Prompt“難伺候”&#xff1f;改一個字就“面目全非”&#xff01;第二章&#xff1a;AI的“思維圣地”&#xff1a;潛在空間&…

【計算機視覺與深度學習實戰】03基于Canny、Sobel和Laplacian算子的邊緣檢測系統設計與實現

第一章 引言 邊緣檢測作為計算機視覺和圖像處理領域的核心技術之一,在現代數字圖像分析中占據著舉足輕重的地位。邊緣是圖像中亮度變化劇烈的區域,通常對應著物體的輪廓、表面方向的不連續性、材質變化或照明條件的改變。準確而高效的邊緣檢測不僅是圖像分割、特征提取、模式…

【大語言模型 02】多頭注意力深度剖析:為什么需要多個頭

多頭注意力深度剖析&#xff1a;為什么需要多個頭 - 解密Transformer的核心升級 關鍵詞&#xff1a;多頭注意力、Multi-Head Attention、注意力頭、并行計算、特征學習、Transformer架構、深度學習 摘要&#xff1a;在掌握了Self-Attention基礎后&#xff0c;本文深入探討多頭注…

Python Condition對象wait方法使用與修復

在 Python 中&#xff0c;Condition 對象用于線程同步&#xff0c;其 wait() 方法用于釋放鎖并阻塞線程&#xff0c;直到被其他線程喚醒。使用不當可能導致死鎖、虛假喚醒或邏輯錯誤。以下是常見問題及修復方案&#xff1a;常見問題與修復方案1. 未檢查條件&#xff08;虛假喚醒…

嵌入式硬件——ARM

一、ARM體系結構程序編譯的過程&#xff1a;預處理&#xff08;.c-.i&#xff09;&#xff1a;宏替換&#xff0c;頭文件展開&#xff0c;去掉注釋&#xff0c;特殊符號的處理編譯&#xff08;.i-.s&#xff09;&#xff1a;C語言轉換成匯編語言匯編&#xff08;.s-.o&#xff…

Flutter 以模塊化方案 適配 HarmonyOS 的實現方法

Flutter 以模塊化方案 適配 HarmonyOS 的實現方法 Flutter的SDK&#xff1a; https://gitcode.com/openharmony-tpc/flutter_flutter 分支Tag&#xff1a;3.27.5-ohos-0.1.0-beta DevecoStudio&#xff1a;DevEco Studio 5.1.1 Release HarmonyOS版本&#xff1a;API18 本文使…