【計算機視覺(2)】

基于Python的OpenCV基礎入門——視頻的處理

  • 視頻
    • OpenCV視頻處理操作:
      • 創建視頻對象
      • 判斷視頻是否成功初始化
      • 讀取視頻幀
      • 獲取視頻特征
      • 設置視頻參數
      • 聲明編碼器
      • 保存視頻
      • 釋放視頻對象
    • 視頻處理基本操作的代碼實現:

視頻

視頻是由一系列連續的圖像幀組成的。每一幀都是視頻中的一張靜止圖像,它們以非常快的速度連續播放,給人一種連續運動的感覺。視頻的幀率指的是每秒鐘播放的幀數,常見的幀率有24幀/秒、30幀/秒和60幀/秒等。幀率越高,視頻播放越流暢。視頻的處理就是通過循環將視頻流中的所有的幀進行處理

OpenCV視頻處理操作:

創建視頻對象

cap = cv2.VideoCapture(value)
參數:
設備索引或者一個視頻文件名。攝像頭讀取則是設備索引,0為默認攝像頭;視頻文件讀取則為filename

判斷視頻是否成功初始化

ret = cap.isOpened()
返回值:
ret :bool類型,成功則為True,否則為False。

讀取視頻幀

ret, frame = video.read()
返回值:
ret:bool類型,判斷是否讀取到幀,成功為True,否則為False。
frame:讀取到的幀

獲取視頻特征

cap.get(propId)
參數:
propId : 0 到 18 之間的整數。每一個數代表視頻的一個屬性,在這里僅舉幾個常用的參數:

int屬性propld
0視頻文件的當前位置(毫秒)CV_CAP_PROP_POS_FRAMES
1下一步要解碼/捕獲的幀的基于0的索引CV_CAP_PROP_POS_AVI_RATIO
3視頻流中幀的寬度CV_CAP_PROP_FRAME_HEIGHT
4視頻流中幀的高度CV_CAP_PROP_FPS
5幀率CV_CAP_PROP_FOURCC

設置視頻參數

cap.set(propId, value)
參數:
propId : 0 到 18 之間的整數
value:設置的新值

聲明編碼器

fourcc = cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’ ) , FourCC 是用于指定視頻解碼器的 4 字節代碼。

參數說明
‘M’, ‘P’, ‘4’, ‘V’MPEG-4編碼類型,文件擴展名為 .mp4
‘X’,‘2’,‘6’,‘4’MPEG-4編碼類型,文件擴展名為.mp4
‘P’,‘I’,‘M’,‘I’MPEG-1編碼類型,文件擴展名為.avi
‘X’, ‘V’, ‘I’, ‘D’MPEG-4編碼類型,文件擴展名為.avi
‘I’, ‘4’, ‘2’, ‘0’YUV編碼類型,文件擴展名為avi

保存視頻

out = cv2.VideoWriter(filename,fourcc, fps, frameSize)
參數:
filename:視頻保存的位置
fourcc:指定視頻編解碼器的4字節代碼
fps:幀率
frameSize:幀大小

釋放視頻對象

capture.release(),釋放視頻對象是必要的清理操作

視頻處理基本操作的代碼實現:

import cv2cap = cv2.VideoCapture('img/1.mp4')while(cap.isOpened()):ret, frame = cap.read()if ret == True:cv2.imshow('frame', frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:break

實現效果如下圖:
在這里插入圖片描述

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

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

相關文章

Spring—IoC

目錄 1. IoC的提出 2. Spring容器 2.1. Spring容器實現原理 2.2. Spring組件 2.2.1 XML標簽方式 2.2.2. 類注解方式 2.2.3. 方法注解方式 2.3. Spring容器分類 2.3.1. BeanFactory容器 2.3.2. ApplicationContext容器 2.3.3. WebApplicationContext容器 3. Spring中…

Srping 歷史

一、History of Spring and the Spring Framework Spring came into being in 2003 as a response to the complexity of the early J2EE specifications. While some consider Java EE and its modern-day successor Jakarta EE to be in competition with Spring, they are …

nginx 配置stream模塊代理并開啟日志配置

前言 nginx 1.20.1 nginx從1.9.0開始,新增加了一個stream模塊 確保nginx 安裝時開啟stream模塊 ./configure \ …… \ --with-stream \ --with-stream_ssl_module \ 修改nginx.conf #增加stream配置,開啟stream模塊 stream {log_format basic $remote_addr [$…

stm32 作為從機, fpga 作為主機,進行 spi 通信

stm32 作為從機, fpga 作為主機,進行 spi 通信 STM32和FPGA之間的SPI通信是直連形式。使用FPGA讀取傳感器的值,傳輸到STM32中進行計算。 STM32是將SPI接受過來的數據存儲到DMA中。 #include "SPI_DMA.h" #include <stm32f10x.h> uint8_t spi_buf[4];//FP…

idea啟動報錯:java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory

文章目錄 一、問題二、解決方法 一、問題 問題描述&#xff1a;idea整合Mybatis-plus的時候&#xff0c;啟動報錯&#xff1a;java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory 二、解決方法 可能原因&#xff1a;仔細檢查了一下&#xff0c;發現 mybati…

《王者榮耀》4月狂攬2.34億美元 單日流水1億美元 全球銷量第二

易采游戲網5月24日消息&#xff0c;在剛剛過去的四月&#xff0c;全球手游市場迎來了一場收益的盛宴&#xff0c;其中《王者榮耀》以其驚人的吸金能力&#xff0c;以2.34億美元的月收入在全球手游排行榜上位列第二。4月5日&#xff0c;這款由騰訊游戲開發的多人在線戰斗競技游戲…

C++相關概念和易錯語法(14)(初始化注意事項、vector、編譯器向上查找規則)

1.當我們在代碼中想要終止運行的話&#xff0c;我們可以采用Ctrl C或Ctrl Z&#xff0c;其中^C代表殺進程&#xff0c;^Z設置結束2.編碼表&#xff1a;我們目前比較熟悉的是ASCII碼編碼方式&#xff0c;但是我們發現平時使用的漢字無法通過ASCII編碼&#xff0c;除此之外&…

前端canvas項目實戰——在線圖文編輯器:序

目錄 前言一、 博主是誰&#xff1f;二、 關于本專欄1. 本專欄涉及的技術棧2. 專欄適合誰來學習&#xff1f;3. 你可以從專欄學到什么&#xff1f;4. 系列文章索引 三、 付費信息后記 前言 很高興&#xff0c;今天我又為自己設定了一個目標&#xff1a;帶領大家從入門HTML5中的…

自動化測試用例結構

標準的用例結構&#xff1a; 用力標題前提條件用例步驟預期結果實際結果 測試用例對比&#xff1a;

酷開系統 | 酷開科技把握智慧先機 AI賦能家庭場景

智慧化是當今世界科技發展的前沿領域之一。現在的智慧化&#xff0c;也正在逐步成為我們日常生活的一部分。電視系統也進入了數字化時代&#xff0c;AI的應用正在不斷擴展&#xff0c;其潛力似乎無窮無盡。 酷開科技深耕人工智能技術&#xff0c;在提升語音體驗、強化智能家居…

(1)無線電失控保護(二)

文章目錄 前言 4 參數配置 5 測試 6 使用接收器設置飛行模式(

第二證券:新股申購配號數什么意思?

股配號數量便是我們參與抽簽的數量&#xff0c;投資者申購新股之后&#xff0c;交易所會根據持有的股票市值進行配號。 投資者的市值越大&#xff0c;申購新股的配號越多&#xff0c;其中簽機會越大。主板、創業板、科創板一個申購單位是500股&#xff0c;意味著1萬元的市值有…

Scrapy 從創建到運行

Scrapy是一個強大的Python框架&#xff0c;專門用于構建網絡爬蟲。 步驟1&#xff1a;安裝Scrapy 首先&#xff0c;你需要安裝Scrapy框架來進行后續操作。以下是具體操作步驟&#xff1a; 1、使用pip命令安裝Scrapy&#xff1a; pip install scrapy 步驟2&#xff1a;創建S…

Java 定義類型處理MySQL point類型數據

1.三個類來處理 引入maven依賴 <!-- 引入 jts 庫解析 POINT --><dependency><groupId>com.vividsolutions</groupId><artifactId>jts</artifactId><version>1.13</version></dependency>import javax.validation.constr…

MySQL的數據類型之文本類型

目錄 文本類型類型&#xff1a; CHAR(size) VARCHAR(size) TEXT TINYTEXT, MEDIUMTEXT, LONGTEXT BLOB, MEDIUMBLOB, LONGBLOB ENUM 在mysql中&#xff0c;常用數據類型有三種&#xff1a; 1、文本類型&#xff1b; 2、數字類型&#xff1b; 3、日期/時間類型&#xff1b; …

【C++入門】—— C++入門 (下)_內聯函數

前言&#xff1a;在了解完前面的C基礎內容后&#xff0c;馬上我們就要真正不如C的學習了&#xff0c;但在之前讓我們最后了解最后一點點C入門知識&#xff01;來遲的520特別篇&#xff01; 本篇主要內容&#xff1a; 內聯函數 auto關鍵字 范圍for 指針空值nullptr C入門 1. 內聯…

星戈瑞CY3-COOH染料的穩定性、熒光特性

CY3-COOH染料&#xff0c;作為一種多功能的熒光標記試劑&#xff0c;在生物醫學研究和熒光成像技術中應用。其穩定性和熒光特性使得它在科研實驗使用。 CY3-COOH染料的穩定性 CY3-COOH染料以其穩定性而應用。首先&#xff0c;它展現出了良好的化學穩定性&#xff0c;不易受到環…

智慧醫療時代:探索互聯網醫院開發的新篇章

在智慧醫療時代&#xff0c;互聯網醫院開發正引領著醫療服務的創新浪潮。通過將先進的技術與醫療服務相結合&#xff0c;互聯網醫院為患者和醫生提供了全新的互動方式&#xff0c;極大地提升了醫療服務的便捷性和效率。本文將深入探討互聯網醫院的開發&#xff0c;介紹其技術實…

一鍵部署!QQ AI 聊天機器人!支持ChatGPT、文心一言、訊飛星火、Bing、Bard、ChatGLM、POE,多賬號,人設調教

隨著人工智能技術的不斷發展&#xff0c;智能聊天機器人已經成為我們日常生活中不可或缺的一部分。ChatGPT作為一款強大的人工智能聊天模型&#xff0c;能夠為我們提供高效、便捷的聊天體驗。那么&#xff0c;如何將ChatGPT接入QQ&#xff0c;實現智能聊天新體驗呢&#xff1f;…

關于Git 的基本概念和使用方式

Git是一個分布式版本控制系統&#xff0c;用于跟蹤和管理代碼的改動。它具有以下基本概念和使用方式&#xff1a; 1. 倉庫&#xff08;Repository&#xff09;&#xff1a;Git使用倉庫來存儲代碼和相關的歷史記錄。倉庫可以是本地的&#xff0c;也可以是遠程的。本地倉庫保存在…