【圖像的讀寫與基本操作】

圖像的讀寫與基本操作

目錄

  • 圖像的讀寫與基本操作
    • 目標
    • 知識點
      • 1. 圖像的讀寫 :
      • 2. 圖像的縮放 :
      • 3. 圖像的翻轉 :
      • 4. 圖像的裁剪 :
      • 5. 顏色空間轉換 :
    • 示例代碼
      • 1. 圖像的讀寫 :
      • 2. 圖像的縮放 :
      • 3. 圖像的翻轉 :
      • 4. 圖像的裁剪 :
      • 5. 顏色空間轉換 :
    • 練習 :
      • 1. 讀取一張彩色圖像,將其旋轉90度并保存 :
      • 2. 將圖像裁剪為原尺寸的一半,顯示并保存 :
      • 3. 將彩色圖像轉換為HSV顏色空間并顯示 :

目標

掌握MATLAB中圖像的讀寫、縮放、裁剪、翻轉和顏色空間轉換等基本操作。

知識點

1. 圖像的讀寫 :

? 讀取圖像 :○ 使用 imread 函數讀取圖像文件。○ 支持多種格式,如 JPG、PNG、BMP 等。
? 保存圖像 :○ 使用 imwrite 函數保存圖像文件。○ 可以指定保存的格式和壓縮參數。

2. 圖像的縮放 :

? 使用 imresize 函數按比例縮放圖像。
? imresize(img, scale):按比例縮放。
? imresize(img, [height, width]):指定目標尺寸。

3. 圖像的翻轉 :

? 旋轉圖像 :○ 使用 imrotate 函數旋轉圖像。○ imrotate(img, angle):順時針旋轉指定角度。
? 翻轉圖像 :○ 使用 fliplr 函數左右翻轉。○ 使用 flipud 函數上下翻轉。

4. 圖像的裁剪 :

? 使用矩陣索引裁剪感興趣區域。
? croppedImg = img(y1:y2, x1:x2, :):裁剪彩色圖像的感興趣區域。
? croppedImg = grayImg(y1:y2, x1:x2):裁剪灰度圖像的感興趣區域。

5. 顏色空間轉換 :

? RGB轉灰度 :○ 使用 rgb2gray 函數將彩色圖像轉換為灰度圖像。
? RGB轉HSV :○ 使用 rgb2hsv 函數將彩色圖像轉換為HSV顏色空間。
? HSV轉RGB :○ 使用 hsv2rgb 函數將HSV圖像轉換為RGB圖像。

示例代碼

1. 圖像的讀寫 :

matlab

% 讀取圖像
img = imread('peppers.png'); % 讀取彩色圖像
grayImg = imread('cameraman.tif'); % 讀取灰度圖像
% 保存圖像
imwrite(img, 'output.png'); % 保存為PNG格式
imwrite(img, 'output.jpg', 'jpg'); % 保存為JPG格式

解釋 :
? imread 函數用于讀取圖像文件,返回一個矩陣表示圖像。
? imwrite 函數用于保存圖像,可以指定格式和壓縮參數。

運行結果:
在這里插入圖片描述

2. 圖像的縮放 :

matlab

% 縮放到原尺寸的50%
scaledImg = imresize(img, 0.5);
figure; imshow(scaledImg); title('Scaled Image (50%)');
% 調整圖像大小為 400x600
resizedImg = imresize(img, [400, 600]);
figure; imshow(resizedImg); title('Resized Image (400x600)');

解釋 :
? imresize 函數可以按比例縮放圖像,也可以指定目標尺寸。
? 縮放因子小于1時,圖像會縮小;大于1時,圖像會放大。

運行結果:
在這里插入圖片描述

3. 圖像的翻轉 :

matlab

% 旋轉圖像
rotatedImg = imrotate(img, 90); % 順時針旋轉90度
figure; imshow(rotatedImg); title('Rotated Image (90 degrees)');
% 左右翻轉
flippedImg = fliplr(img);
figure; imshow(flippedImg); title('Flipped Image (Left-Right)');

解釋 :
? imrotate 函數用于旋轉圖像,第二個參數是旋轉角度。
? fliplr 函數用于左右翻轉圖像,flipud 函數用于上下翻轉圖像。

運行結果:
在這里插入圖片描述

4. 圖像的裁剪 :

matlab

% 裁剪感興趣區域
croppedImg = img(100:200, 150:250, :); % 裁剪彩色圖像
figure; imshow(croppedImg); title('Cropped Color Image');
% 裁剪灰度圖像
croppedGray = grayImg(50:150, 100:200);
figure; imshow(croppedGray); title('Cropped Grayscale Image');

解釋 :
? 使用矩陣索引,可以方便地裁剪出感興趣區域。
? 對于彩色圖像,需要指定三個通道;灰度圖像只需指定行和列。

運行結果:
在這里插入圖片描述

5. 顏色空間轉換 :

matlab

% RGB轉灰度
grayImg = rgb2gray(img);
figure; imshow(grayImg); title('Grayscale Image');
% RGB轉HSV
hsvImg = rgb2hsv(img);
figure; imshow(hsvImg); title('HSV Image');
% HSV轉RGB
rgbImg = hsv2rgb(hsvImg);
figure; imshow(rgbImg); title('RGB Image');

解釋 :
? rgb2gray 函數將彩色圖像轉換為灰度圖像。
? rgb2hsv 和 hsv2rgb 函數用于在RGB和HSV顏色空間之間轉換。
運行結果:
在這里插入圖片描述

練習 :

1. 讀取一張彩色圖像,將其旋轉90度并保存 :

matlab

% 讀取圖像
img = imread('peppers.png');
% 旋轉圖像
rotatedImg = imrotate(img, 90);
% 保存圖像
imwrite(rotatedImg, 'rotated_peppers.png');

運行結果:
在這里插入圖片描述

2. 將圖像裁剪為原尺寸的一半,顯示并保存 :

matlab

% 讀取圖像
img = imread('peppers.png');
% 裁剪圖像
croppedImg = img(1:end/2, 1:end/2, :);
% 顯示圖像
figure; imshow(croppedImg); title('Cropped Image');
% 保存圖像
imwrite(croppedImg, 'cropped_peppers.png');

運行結果:
在這里插入圖片描述在這里插入圖片描述

3. 將彩色圖像轉換為HSV顏色空間并顯示 :

matlab

% 讀取圖像
img = imread('peppers.png');
% 轉換為HSV
hsvImg = rgb2hsv(img);
% 顯示圖像
figure; imshow(hsvImg); title('HSV Image');

運行結果:
在這里插入圖片描述

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

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

相關文章

《數字圖像處理》筆記

文章目錄 第一章 緒論1.1 什么是數字圖像處理數字圖像的概念數字圖像的組成數字圖像處理的概念 1.4 數字圖像處理的基本步驟 第二章 數字圖像基礎2.2 光和電磁波譜可見光單色光灰度級發光強度光通量亮度 2.3 圖像感知和獲取將照射能量變換為數字圖像的傳感器簡單的圖像形成模型…

網絡安全掃描--基礎篇

前言 1、了解互聯網安全領域中日趨重要的掃描技術 2、了解在不同網絡場景下掃描技術手段 3、熟悉linux下系統內核防護策略并能大件一個有效的系統防護體系 4、增強工作安全意識,并能有效的實踐于工作場景中 目錄 1、熟悉主機掃描工具(fping,…

前端防重復請求終極方案:從Loading地獄到精準攔截的架構升級

🔥 事故現場還原:瘋狂點擊引發的血案 凌晨1點23分,監控系統突然告警: 📉 服務器CPU飆升至98% 🗃? 數據庫出現3000臟數據 💥 用戶端彈出上百個錯誤彈窗 事故原因:黑產腳本通過0.5秒…

基于Spring Boot的供應商管理系統設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導,歡迎高校老師/同行前輩交流合作?。 技術范圍:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:…

Redis|事務

文章目錄 是什么能干嘛Redis 事務 VS 數據庫事務怎么玩小總結 是什么 首先回想一下什么是數據庫的事務?數據庫事務是指作為單個邏輯單元執行的一系列操作,具備以下四個關鍵特性(ACID): 原子性(Atomicity&am…

一周學會Flask3 Python Web開發-Jinja2模板繼承和include標簽使用

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程: 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 不管是開發網站還是后臺管理系統,我們頁面里多多少少有公共的模塊。比如博客網站,就有公共的頭部&…

二十三種設計模式詳解

二十三種設計模式是軟件開發中用于解決常見問題的經典解決方案,它們由 Erich Gamma 等四位作者在《設計模式:可復用面向對象軟件的基礎》一書中提出。這些模式分為三大類:創建型模式、結構型模式 和 行為型模式。 1. 創建型模式(…

用pyside6創建一個界面并實現一個小功能且能打包成問題記錄

現在我們要開發一個程序,讓用戶輸入一段文本包含:員工姓名、薪資、年齡。該程序可以把薪資在 2萬 以上、以下的人員名單分別打印出來。 1用designer創建界面并生成UI文件; 2直接調用ui文件實現功能; from PySide6.QtWidgets im…

計算機畢業設計 ——jspssm510springboot 的人職匹配推薦系統

作者:程序媛9688 開發技術:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等。 🌟文末獲取源碼數據庫🌟 感興趣的可以先收藏起來,還有大家在畢設選題(免費咨詢指導選題)&#xf…

包子湊數——藍橋杯真題Python

包子湊數 輸入輸出樣例 示例 1 輸入 2 4 5輸出 6樣例說明 湊不出的數目包括:1, 2, 3, 6, 7, 11。 示例 2 輸入 2 4 6輸出 INF樣例說明 所有奇數都湊不出來,所以有無限多個 運行限制 最大運行時間:1s最大運行內存: 256M 最大公約數 最大公…

SSM和SpringBoot有什么區別?

SSM(Spring、Spring MVC、MyBatis)和 Spring Boot 有以下一些區別: 配置方式 SSM:配置相對繁瑣,需要在多個 XML 文件中進行大量的配置。Spring Boot:采用“約定大于配置”的原則,極大地簡化了配…

極簡Python服務器后端

在Python中,可以使用http.server模塊和json模塊來創建一個簡單的HTTP服務器,該服務器可以響應80端口上的/query POST請求,并且請求體為JSON格式。 需要注意,在Linux系統上,使用低于1024的端口(如80端口&…

文檔檢索服務平臺

文檔檢索服務平臺是基于Elasticsearch的全文檢索,包含數據采集、數據清洗、數據轉換、數據檢索等模塊。 項目地址:Github、國內Gitee 演示地址:http://silianpan.cn/gdss/ 以下是演示角色和賬號(密碼同賬號)&#xf…

關于Postman自動獲取token

在使用postman測試聯調接口時,可能每個接口都需要使用此接口生成的令牌做Authorization的Bearer Token驗證,最直接的辦法可能會是一步一步的點擊,如下圖: 在Authorization中去選擇Bearer Token,然后將獲取到的token粘貼…

清華大學DeepSeek文檔下載,清華大學deepseek下載(完成版下載)

文章目錄 前言一、清華大學DeepSeek使用手冊下載二、清華大學DeepSeek使用手冊思維導圖 前言 這是一篇關于清華大學deepseek使用手冊pdf的介紹性文章,主要介紹了DeepSeek的定義、功能、使用方法以及如何通過提示語設計優化AI性能。以下是對這些核心內容的簡要概述&…

Linux:(3)

一:Linux和Linux互傳(壓縮包) scp:Linux scp 命令用于 Linux 之間復制文件和目錄。 scp 是 secure copy 的縮寫, scp 是 linux 系統下基于 ssh 登陸進行安全的遠程文件拷貝命令。 scp 是加密的,rcp 是不加密的,scp 是…

【新人系列】Python 入門專欄合集

? 個人博客:https://blog.csdn.net/Newin2020?typeblog 📝 專欄地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 專欄定位:為 0 基礎剛入門 Python 的小伙伴提供詳細的講解,也歡迎大佬們…

Arcgis 實用制圖技巧--如何制作“陰影”效果

今天給大家介紹arcgis中陰影效果的制作方法,操作很簡單,在ArcMap當中使用制圖表達和移動幾何方式就可以輕松實現。 左側地圖的圖形背景組織很差。右側地圖通過使用陰影效果突出了重點內容。今天,我將要介紹兩種陰影效果的創建方法:第一,純色陰影(single color);第二,漸變…

pandas如何在dataframe上再添加一個dataframe

在pandas中,通常將一個DataFrame與另一個DataFrame進行合并或連接操作,主要有concat函數、merge函數和join方法三種方式,以下是具體介紹: ### 使用concat函數 concat函數可以沿著指定軸將多個DataFrame連接在一起,默認…

YOLOv12 ——基于卷積神經網絡的快速推理速度與注意力機制帶來的增強性能結合

概述 實時目標檢測對于許多實際應用來說已經變得至關重要,而Ultralytics公司開發的YOLO(You Only Look Once,只看一次)系列一直是最先進的模型系列,在速度和準確性之間提供了穩健的平衡。注意力機制的低效阻礙了它們在…