RK3568平臺(opencv篇)opencv處理圖像視頻

一.讀取圖像文件并展示

灰度圖像:

灰度圖需要用 8 位二進制來表示,取值范圍是 0-255。用 0 表示 0(黑色), 用 255 表示 1(白色),取值越大表示該點越亮。

RGB 彩色圖像:

?

RGB 圖像就是一張像素由三個值來表示的圖片,三個值分別表示紅、綠、藍三種 顏色的程度。如果一個像素的紅色程度是 255,其它兩個顏色程度是 0,那么這個像素在我們 看來就是紅色的,通過這三種顏色的搭配,我們可以配出 4294967296 種不同的顏色。

代碼實踐:

demo01_imread.py

import cv2  # opencv的縮寫為cv2,導入opencvimg1 = cv2.imread('lena.png', 0)  # flags參數為0,返回灰色圖像
img2 = cv2.imread('lena.png', 1)  # flags參數為1,返回彩色圖像
cv2.imshow('灰度圖', img1)  # imshow函數現實處理結果
cv2.imshow('彩色圖', img2)
cv2.waitKey(0)  # 等待下一次按鍵按下

cv2.imread()函數功能:讀取圖像文件。

?函數原型:cv2.imread(filename,flags=None)

參數定義: 第一個參數 filename,指要加載的圖片路徑。 第二個參數,為載入標識,指定一個加載圖像的顏色類型,默認值為 1。

flags 取值: CV_LOAD_IMAGE_UNCHANGED——等價取值為-1,這個標識在新版本中已被廢置。 CV_LOAD_IMAGE_GRAYSCALE——等價取值為 0,返回灰色圖像。 CV_LOAD_IMAGE_COLOR——等價取值為 1,返回彩色圖像。 CV_LOAD_IMAGE_ANYDEPTH——等價取值為 2,若圖像深度是 16 位或者 32 位,就返回對 應深度,否則,返回 8 位圖像如果輸入有沖突的標志,將采用較小的數字值。

imread()函數載入圖像并展示。

?二.寫入圖像文件信息

demo02_imwrite.py

import cv2  # opencv的縮寫為cv2,導入opencvimg = cv2.imread('lena.png', 0)  # flags參數為0,返回灰色圖像
cv2.imshow('灰度圖', img)  # imshow函數現實處理結果
cv2.imwrite('lena_gray.png', img)  # imwrite寫入讀取到的圖像并命名為lena_gray.png
cv2.waitKey(0)  # 等待下一次按鍵按下

cv2.imwrite()函數功能: 寫入圖像文件信息。

函數原型: cv2.imwrite(filename,img,params=None)

參數定義: img_path_name:保存的文件名 img:文件對象 params:特定格式下保存的參數編碼,一般情況下為 None。

三.讀取視頻文件

demo03_VideoCapture.py

import cv2video_capture = cv2.VideoCapture("test.mp4")  # 使用VideoCapture函數讀取名為test.mp4的視頻文件
frame_num = video_capture.get(cv2.CAP_PROP_FRAME_COUNT)  # 使用video_capture.get函數獲取總幀數
print("總幀數為 %f" % frame_num)
fps = video_capture.get(cv2.CAP_PROP_FPS)  # ==>使用video_capture.get函數獲取幀率
print("幀率為 %f" % fps)
width = video_capture.get(cv2.CAP_PROP_FRAME_WIDTH)  # ==>使用video_capture.get函數獲取視頻寬度
print("視頻寬度為 %f" % width)
height = video_capture.get(cv2.CAP_PROP_FRAME_HEIGHT)  # ==>使用video_capture.get函數獲取視頻高度
print("視頻高度為 %f" % height)

cv2.VideoCapture() 函數功能:初始化 VideoCapture 類并利用構造函數讀入該視頻的當前幀。

函數原型:cv2.VideoCapture(*args,**kwargs)

參數定義: 一般僅填入一個,即文件名。如果填入整數,則打開對應的捕獲設備 ID。若為 0,則打 開默認攝像頭。

VideoCapture.get 函數功能:返回該視頻的 propld 所指定的屬性。

函數原型:VideoCapture.get(self,propld)

參數定義: propld,為需要讀取的視頻屬性參數位,一般以 cv2.CAP_PROP_ 開頭,部分常用參數如 下表所示:

四.播放視頻文件

demo04_videoplayback.py

import cv2  # opencv的縮寫為cv2,導入opencvcap = cv2.VideoCapture(0)  # 使用VideoCapture函數讀取名為test.mp4的視頻文件
fps = cap.get(cv2.CAP_PROP_FPS)  # 使用video_capture.get函數獲取幀率
while True:  # while循環,能持續播放讀取到的視頻ret, frame = cap.read()  # 使用read()函數讀取圖像的幀,一次循環讀取一幀cv2.imshow("video", frame)  # 使用imshow()函數對讀取到的幀進行顯示if cv2.waitKey(int(1000 / fps)) & 0xFF == ord('q'):  # 設置視頻播放完成和按下q鍵退出break
cap.release()  # 釋放cap
cv2.destroyAllWindows()  # 關閉窗口,清除程序所占用的內存

python demo04_videoplayback.py 無法播放視頻,待bug。。。?

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

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

相關文章

XPath 語法筆記

XPath 語法筆記 XPath 表達式運算符謂語(Predicates)1. 選擇所有本地名稱為特定名稱的元素2. 選擇具有特定屬性的元素3. 選擇屬性值不等于特定值的元素4. 選擇元素內容中包含特定字符串的節點5. 選擇元素內容中不包含特定字符串的節點6. 選擇特定命名空間…

一臺docker機器如何實現構建多平臺鏡像

1.實現方式 想在 x86_64/amd64 的一臺機器平臺上,構建適用于多個平臺的鏡像,例如 linux/amd64、linux/arm64,根據官方文檔,有三種方法可以使用: QEMU ??使用 QEMU 模擬構建多平臺映像是最簡單的入門方法&#xff0c…

前端面試題13(API請求方法)

在前端JavaScript中,進行API請求主要可以通過幾種方式來實現,最常見的是使用XMLHttpRequest(較舊的方法)、fetch(現代瀏覽器推薦方法)以及使用第三方庫如axios或jQuery.ajax等。 1. XMLHttpRequest 這是最…

仙人掌中的SNMP檢測不到服務器

登錄有問題的服務器1.檢測snmp localhost:~ # ps -ef|grep snmp root 55180 1 0 08:37 ? 00:00:08 /usr/sbin/snmpd -r -A -LF n /var/log/net-snmpd.log -p /var/run/snmpd.pid root 58436 53989 0 09:44 pts/0 00:00:00 grep --colorauto snmp2.檢測…

linux 編譯perf 工具

centos7下編譯步驟: wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.gz tar -xf linux-3.10.tar.gz cd linux-3.10/tools/ yum install -y flex bison python2-devel make perf ./perf/perf top -d 1…

昇思第10天

RNN實現情感分類 二分類問題:Positive和Negative兩類 步驟: 1.加載IMDB數據集 2.加載預訓練詞向量:預訓練詞向量是對輸入單詞的數值化表示,通過nn.Embedding層,采用查表的方式,輸入單詞對應詞表中的index,…

【算法專題】模擬算法題

模擬算法題往往不涉及復雜的數據結構或算法,而是側重于對特定情景的代碼實現,關鍵在于理解題目所描述的情境,并能夠將其轉化為代碼邏輯。所以我們在處理這種類型的題目時,最好要現在演草紙上把情況理清楚,再動手編寫代…

FreeRTOS——隊列集

一、隊列集 一個隊列只允許任務間傳遞的消息為 同一種數據類型 ,如果需要在任務間 傳遞不同數據類型的消息 時,那么就可以使用隊列集 作用:用于對多個隊列或信號量進行“監聽”(接收或獲取),其中 不管哪一…

js 使用 lodash-es 檢測某個值是否是函數

import { isFunction } from lodash-eslet isA isFunction(() > {}) console.log(isA) //true https://www.lodashjs.com/docs/lodash.isFunction#_isfunctionvalue https://lodash.com/docs/4.17.15#isFunction 人工智能學習網站 https://chat.xutongbao.top

Spring框架配置進階_自動裝配(XML和注解)

Spring配置進階 Spring 容器提供配置元數據有三種方式 XML配置文件。基于注解的配置。基于java的配置。 一、自動裝配 應用程序上下文為你找出依賴項的過程,Spring會在上下文中自動查找,并自動給bean裝配與其關聯的屬性 Spring中實現自動裝配的方式有兩種: XML文…

26-ARM常用匯編指令

匯編格式: label:instruction comment label:標號instruction:具體匯編指令comment:注釋內容 常用段名: .text:代碼段.data:初始化的數據段.bss:未初始化的數據段.ro…

Spring Boot+Vue項目從零入手

Spring BootVue項目從零入手 一、前期準備 在搭建spring bootvue項目前,我們首先要準備好開發環境,所需相關環境和軟件如下: 1、node.js 檢測安裝成功的方法:node -v 2、vue 檢測安裝成功的方法:vue -V 3、Visu…

JSP WEB開發(一) JSP語言基礎

目錄 JSP JSP簡介: JSP頁面 JSP運行原理 JSP腳本元素 JAVA程序片 局部變量 全局變量和方法的聲明 全局變量 方法的聲明 程序片執行特點 synchronized關鍵字 表達式 JSP指令標記 page指令 include指令 JSP動作標記 JSP動作元素include和include指令的…

Docker在人工智能領域的應用與實戰

摘要 人工智能(AI)技術的快速發展帶來了對高效開發和部署工具的需求。Docker作為一個創新的容器化平臺,為AI領域提供了強大的支持。本文詳細介紹了Docker在AI模型開發、訓練、部署以及服務器集群管理等方面的應用,并探討了其在數…

AcWing 1550:完全二叉搜索樹

【題目來源】https://www.acwing.com/problem/content/1552/【題目描述】二叉搜索樹 (BST) 遞歸定義為具有以下屬性的二叉樹: (1)若它的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值 (2)若它的右…

大數據平臺之數據同步

數據同步也成為CDC (Chanage Data Capture) 。Change Data Capture (CDC) 是一種用于跟蹤和捕獲數據庫中數據變更的技術,它可以在數據發生變化時實時地將這些變更捕獲并傳遞到下游系統。以下是一些常用的開源 CDC 方案: 1. Flink CDC Flink CDC 是基于 …

快速上手LangChain:構建強大的語言模型應用

引言 在人工智能和自然語言處理(NLP)領域,構建高效且強大的語言模型應用變得越來越重要。LangChain 是一個專為開發者設計的框架,它簡化了語言模型應用的構建流程。本文將詳細介紹LangChain的功能和使用方法,幫助讀者…

76 4G模組 境外撥號入網注意

1 引言 最近朋友把國內的設備拿到新加坡了,然后發現原本國內可以使用的設備無法在異國他鄉聯網,所以就叫我來看看,發現是附網返回狀態、入網APN發生了改變導致的。另外,如果在境外使用國產4G模組撥號入網,也需要關注4G…

Windows安裝超好用的截圖工具——Snipaste

1、下載 官網:https://zh.snipaste.com/ 2、安裝 (1)解壓下載的壓縮包 (2)選中Snipaste.exe文件,右鍵發送到 -- > 桌面快捷方式 (3)雙擊桌面Snipaste圖標,桌面右下…

linux 服務器數據備份 和 mysql 數據遷移

查看域名ip 查看程序所處文件位置 list open files 1、 lsof -i :port 查看端口獲取進程 pid 2、lsof -i pid 1、scp 下載服務器文件到本地 security copy protocol 2、導出服務器 mysql 數據庫(表)到本地 mysqldump是MySQL自帶的一個實用程序&…