【图像的读写与基本操作】

图像的读写与基本操作

目录

  • 图像的读写与基本操作
    • 目标
    • 知识点
      • 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.mzph.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,只看一次)系列一直是最先进的模型系列,在速度和准确性之间提供了稳健的平衡。注意力机制的低效阻碍了它们在…