樹莓派4B_OpenCv學習筆記4:測試攝像頭_imread加載顯示圖像_imwrite保存圖片

今日繼續學習樹莓派4B 4G:(Raspberry Pi,簡稱RPi或RasPi)

?本人所用樹莓派4B 裝載的系統與版本如下:

?版本可用命令 (lsb_release -a) 查詢:

Opencv 版本是4.5.1:

今日對之前的測試CSI攝像頭函數進行一些理解說明,

然后就嘗試使用 imread 方法讀取照片,imwrite方法保存圖片

目錄

imread加載顯示圖像:

編寫程序:

運行程序與結果:

imread('Path',flag)函數詳解:

imwrite方法保存圖片:

編寫程序:

運行程序與結果:

網上學習網址貼出:


imread加載顯示圖像:

編寫程序:

編寫一個文件名為“Load_img.py”的python程序如下:

# coding=utf-8
import cv2  # 創建一個窗口,并允許調整窗口大小  
cv2.namedWindow('image', cv2.WINDOW_NORMAL)  # 讀取圖片,第二個參數0表示以灰度并以1/4大小模式讀取  
img = cv2.imread('/home/pi/Pictures/Load_test.jpg', 33)  # 如果圖片讀取成功,則顯示圖片  
if img is not None:  cv2.imshow('image', img)  # 等待任意按鍵按下  key = cv2.waitKey(0)  # 如果按下的是'q'鍵,則退出程序  if key & 0xFF == ord('q'):  cv2.destroyAllWindows()  
else:  print("Load_Failed...")  # 無論是否按下'q'鍵,都需要在程序結束前銷毀窗口  
# 但由于我們在上面的if塊中已經銷毀了窗口(如果按下'q'),這里不需要再次銷毀  
# 如果上面的if塊沒有執行(即圖片未加載),則這里也不需要銷毀窗口  
# 因為沒有窗口被創建

在讀取圖片代碼處需要注意文件路徑以及圖片類型名稱:

代碼中我是加載了位于/home/pi/Pictures/ 目錄下的 Load_test.jpg 圖片:

這個可以自己隨便拍張圖片放在指定目錄來測試,目錄與圖片名稱填完整正確了就可以

其次就是文件頭的這個注釋不可去除:

程序包含了一些非UTF-8編碼的字符,這是Python解釋器在讀取文件時聲明文件編碼的注釋

運行程序與結果:

使用 dos2unix 工具:

程序包含了一些非UTF-8編碼的字符所以需要用工具進行一些轉換:

如果未安裝:

sudo apt-get update  
sudo apt-get install dos2unix

如果安裝過了:

dos2unix <文件名>.py

運行結果:

python3 Load_img.py

imread('Path',flag)函數詳解:

以下是 imread 函數中常用的枚舉 flag 值及其具體意義:

  1. IMREAD_UNCHANGED (-1):
    • 如果設置,返回加載的圖像原樣(如果有 alpha 通道,則保留;否則,會裁剪)。
  2. IMREAD_GRAYSCALE (0):
    • 如果設置,始終將圖像轉換為灰度圖像并返回。
  3. IMREAD_COLOR (1):
    • 如果設置,返回彩色圖像。這是默認參數,圖像的透明度會被忽略。
  4. IMREAD_ANYDEPTH (2):
    • 如果設置,并且載入的圖像深度為 16 或 32 位,則返回對應深度的圖像;否則,轉換為 8 位圖像再返回。
  5. IMREAD_ANYCOLOR (4):
    • 這個標志的具體作用在參考文章中未明確說明,但在某些上下文中,它可能與顏色空間的讀取方式有關。
  6. IMREAD_LOAD_GDAL (8):
    • 如果設置,使用 GDAL 驅動程序加載圖像。GDAL 是一個用于柵格地理空間數據格式的庫。
  7. IMREAD_REDUCED_GRAYSCALE_2 (16):
    • 如果設置,返回 1/2 大小的灰度圖像。
  8. IMREAD_REDUCED_COLOR_2 (17):
    • 如果設置,返回 1/2 大小的彩色圖像。
  9. IMREAD_REDUCED_GRAYSCALE_4 (32):
    • 如果設置,返回 1/4 大小的灰度圖像。
  10. IMREAD_REDUCED_COLOR_4 (33):
    • 如果設置,返回 1/4 大小的彩色圖像。
  11. IMREAD_REDUCED_GRAYSCALE_8 (64):
    • 如果設置,返回 1/8 大小的灰度圖像。
  12. IMREAD_REDUCED_COLOR_8 (65):
    • 如果設置,返回 1/8 大小的彩色圖像。
  13. IMREAD_IGNORE_ORIENTATION (128):
    • 如果設置,在讀取圖像時忽略 EXIF 中的方向信息。

imwrite方法保存圖片:

編寫程序:

這個程序可以做到打開攝像頭,實時顯示捕獲視頻流,

按下鍵盤‘C’可以截獲保存一張照片在路徑‘/home/pi/Pictures/’(注意要有這個文件夾Pictures),圖片名稱為‘your_image_0000.jpg’(0000是圖片編號;會遞增)

按下鍵盤‘Q’鍵就能退出這個程序了

# coding=utf-8
import cv2  # 打開攝像頭,0通常是默認攝像頭的索引  
cap = cv2.VideoCapture(0)  if not cap.isOpened():  print("Error opening video stream or file")  
else:  frame_count = 0  # 初始化幀計數器  while True:  # 讀取一幀圖像  ret, frame = cap.read()  # 檢查幀是否正確讀取  if not ret:  print("Can't receive frame (stream end?). Exiting ...")  break  # 顯示圖像  cv2.imshow('Video Stream', frame)  # 等待鍵盤輸入,如果按下'q'則退出循環  key = cv2.waitKey(1) & 0xFF  if key == ord('q'):  break  # 如果按下'c',則保存當前幀  elif key == ord('c'):  # 定義保存圖片的文件路徑和名稱,包含遞增的編號  # 使用04d來確保編號是四位數,并填充前導零  file_path = f'/home/pi/Pictures/your_image_{frame_count:04d}.jpg'  cv2.imwrite(file_path, frame)  print(f"Image saved successfully: {file_path}")  frame_count += 1  # 遞增計數器  # 釋放攝像頭  cap.release()  # 關閉所有OpenCV窗口  cv2.destroyAllWindows()

運行程序與結果:

發現確實每次按下‘C’就保存一張圖片并進行了終端提示:

網上學習網址貼出:

3-3 如何通過OpenCV加載顯示圖片_嗶哩嗶哩_bilibili

3-5 如何通過OpenCV保存文件_嗶哩嗶哩_bilibili

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

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

相關文章

pytorch中的zero_grad()函數的含義和使用

optimizer.zero_grad() &#xff0c;用于將模型的參數梯度初始化為0。 #反向計算 loss.backward()#反向傳播計算梯度 optimizer.step()#更新參數&#xff0c;梯度被反向計算之后&#xff0c;調用函數進行所有參數更新 #在反向傳播計算時&#xff0c;梯度的計算是累加&#xff…

降噪是什么意思?視頻如何降噪?一文了解全部

在視頻制作的過程中&#xff0c;我們經常會遇到噪音問題&#xff0c;這些噪音可能來自拍攝環境、錄制設備或其他源頭。然而&#xff0c;對于初學者來說&#xff0c;降噪是什么意思&#xff0c;以及如何有效地在視頻中進行降噪可能是一些疑惑的問題。本文將深入解釋降噪的概念&a…

【算法】深入淺出爬山算法:原理、實現與應用

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

echarts學習: 繪制雙y軸折線圖

前言 我們公司項目中的折線圖大都是雙y軸的&#xff0c;因為這些圖表往往需要同時展示水位和流量這兩種不同單位的數據&#xff0c;因此如何繪制雙y軸折線圖就是就是我所面臨的首要問題。 1.如何繪制雙y軸 將yAxis屬性的值設置為一個數組&#xff0c;并在數組中添加兩個axis對…

【LC刷題】DAY02:977 209 59

#【LC刷題】DAY02&#xff1a;977 209 59 文章目錄 977. 有序數組的平方 [link](https://leetcode.cn/problems/squares-of-a-sorted-array/description/)第一思路&#xff1a;直接排序優化&#xff1a;雙指針 209. 長度最小的子數組 [link](https://leetcode.cn/problems/min…

Apache Spark MLlib詳解

Apache Spark MLlib 是 Spark 的一個核心組件&#xff0c;提供了大量的機器學習算法和工具&#xff0c;用于在大數據集上進行數據分析和預測建模。MLlib 提供了廣泛的算法集&#xff0c;包括分類、回歸、聚類、協同過濾、降維、特征提取、頻繁模式挖掘和統計測試等。 主要特點…

記錄一次Linux啟動kafka后并配置了本地服務連接遠程kafka的地址后依舊連接localhost的問題

問題的原因 我是使用docker來安裝并啟動kafka 的&#xff0c;所以在啟動過程中并沒有太多需要配置的地方&#xff0c;基本都是從網上照搬照抄&#xff0c;沒動什么腦子&#xff0c;所以看著啟動起來了覺得就沒事了&#xff0c;但是運行項目的時候發現&#xff0c;我明明已經配…

第五屆上海市青少年算法競賽網絡同步賽(小學組)

第五屆上海市青少年算法競賽網絡同步賽(小學組)T1. 符號譯碼_網絡同步賽 內存限制: 256 Mb 時間限制: 1000 ms 題目描述 小愛為標點符號設計了一套編碼系統,編碼規則如下: [ 的編碼為 010 ] 的編碼為 101 < 的編碼為 00 > 編碼為 11 + 的編碼為 011 - 編碼為 100 根…

AI輔助論文:探索AI查重與AI降重技術

在科研領域&#xff0c;AI寫作工具如同新一代的科研利器&#xff0c;它們能夠極大提高文獻查閱、思路整理和表達優化的效率&#xff0c;本質上促進了科研工作的進步。AI寫作工具不僅快速獲取并整理海量信息&#xff0c;還幫助我們精確提煉中心思想&#xff0c;顯著提升論文寫作…

生成式人工智能的風險與治理——以ChatGPT為例

文 | 西南政法大學經濟法學院 馬羽男 以ChatGPT為代表的生成式人工智能在創造社會福利的同時&#xff0c;也帶來了諸多風險。因此&#xff0c;當務之急是結合我國生成式人工智能發展狀況&#xff0c;厘清其應用價值與潛在風險之間的關系&#xff0c;以便在不影響應用發展的前提…

0606 作業

#include <stdio.h> #include <string.h>typedef struct usr{char unm[21];char pwd[21]; }user;int main(int argc, const char *argv[]) {FILE* userfilefopen("./user_tible.txt","r");printf("輸入username:");user u;scanf(&qu…

人工智能在腫瘤預后預測中的最新研究進展|頂刊精析·24-06-07

小羅碎碎念 今天要分享的文獻主題&#xff0c;大家一定非常熟悉&#xff0c;因為絕大多數AI4cancer的文章都會提到它——預后預測&#xff0c;所以今天的文獻主題是——人工智能腫瘤預后預測。 在正式開始分享之前&#xff0c;我想先帶著大家梳理兩個問題。解決了以下兩個問…

Chrome 自動執行 JS 腳本 | Tampermonkey 插件

文章目錄 第 1 步:安裝插件 Tampermonkey第 2 步:固定到工具欄第 3 步:在網站上啟用 Tampermonkey第 4 步:查看效果第 5 步:調試 JS 代碼?? 背景:有個網站,每次進去都要點 3 次才能把相關頁面展開。而且,頁面經常會自己刷新,導致展開的頁面又收回去了。【這一天天的…

【Python】實現極致:克服PyInstaller打包挑戰,解決libpython3.10.so.1.0庫丟失難題

【Python】實現極致&#xff1a;克服PyInstaller打包挑戰&#xff0c;解決libpython3.10.so.1.0庫丟失難題 大家好 我是寸鐵&#x1f44a; 總結了一篇【Python】實現極致&#xff1a;克服PyInstaller打包挑戰&#xff0c;解決libpython3.10.so.1.0庫丟失難題? 喜歡的小伙伴可以…

MFC設置窗口在Z軸上的位置

函數原型&#xff1a; BOOL CWnd::SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags);返回值&#xff1a; 如果函數成功&#xff0c;則返回非零值&#xff1b;否則返回0。 參數&#xff1a; pWndInsertAfter&#xff1a;標識了在Z軸次…

ai智能全自動批量剪輯軟件神器,讓視頻創作變得簡單!

隨著科技的飛速發展&#xff0c;人工智能技術在各個領域都取得了突破。在視頻制作領域&#xff0c;AI智能全自動批量剪輯軟件神器的出現&#xff0c;為視頻創作者帶來了前所未有的便利。接下來咱們詳細介紹這款軟件的特點和優勢&#xff0c;以及它如何讓視頻創作變得更加簡單。…

【網絡安全的神秘世界】Kali安裝中文輸入法

&#x1f31d;博客主頁&#xff1a;泥菩薩 &#x1f496;專欄&#xff1a;Linux探索之旅 | 網絡安全的神秘世界 | 專接本 今天就手把手教你如何在kali中安裝和配置輸入法 首先&#xff0c;打開終端&#xff0c;輸入下面這行代碼&#xff1a; # sudo apt install ibus ibus-pi…

【機器學習】Python與深度學習的完美結合——深度學習在醫學影像診斷中的驚人表現

&#x1f525; 個人主頁&#xff1a;空白詩 文章目錄 一、引言二、深度學習在醫學影像診斷中的突破1. 技術原理2. 實際應用3. 性能表現 三、深度學習在醫學影像診斷中的驚人表現1. 提高疾病診斷準確率2. 輔助制定治療方案 四、深度學習對醫療行業的影響和推動作用 一、引言 隨著…

網絡安全領域六大頂級會議介紹:含會議介紹、會議地址及會議時間和截稿日期

**引言&#xff1a;**從事網絡安全工作&#xff0c;以下六個頂會必須要知道&#xff0c;很多安全的前沿技術都會在如下會議中產生與公開&#xff0c;如下會議發表論文大部分可以公開下載。這些會議不僅是學術研究人員展示最新研究成果的平臺&#xff0c;也是行業專家進行面對面…

Flutter_Android上架GooglePlay_問題

上架GooglePlay權限問題 問題描述 REQUEST_INSTALL_PACKAGES 權限問題解決方式 方式1 找到所有使用該權限的庫修改刪除該權限引用 方式2 打開項目 ~/andoird/app/src/main/AndroidMainfest.xml 添加文本<uses-permission android:name"android.permission.REQUES…