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

图像的读写与基本操作

目录

  • 图像的读写与基本操作
    • 目标
    • 知识点
      • [1. 图像的读写 :](#1. 图像的读写 :)
      • [2. 图像的缩放 :](#2. 图像的缩放 :)
      • [3. 图像的翻转 :](#3. 图像的翻转 :)
      • [4. 图像的裁剪 :](#4. 图像的裁剪 :)
      • [5. 颜色空间转换 :](#5. 颜色空间转换 :)
    • 示例代码
      • [1. 图像的读写 :](#1. 图像的读写 :)
      • [2. 图像的缩放 :](#2. 图像的缩放 :)
      • [3. 图像的翻转 :](#3. 图像的翻转 :)
      • [4. 图像的裁剪 :](#4. 图像的裁剪 :)
      • [5. 颜色空间转换 :](#5. 颜色空间转换 :)
    • [练习 :](#练习 :)
      • [1. 读取一张彩色图像,将其旋转90度并保存 :](#1. 读取一张彩色图像,将其旋转90度并保存 :)
      • [2. 将图像裁剪为原尺寸的一半,显示并保存 :](#2. 将图像裁剪为原尺寸的一半,显示并保存 :)
      • [3. 将彩色图像转换为HSV颜色空间并显示 :](#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

c 复制代码
% 读取图像
img = imread('peppers.png'); % 读取彩色图像
grayImg = imread('cameraman.tif'); % 读取灰度图像
% 保存图像
imwrite(img, 'output.png'); % 保存为PNG格式
imwrite(img, 'output.jpg', 'jpg'); % 保存为JPG格式

解释 :

• imread 函数用于读取图像文件,返回一个矩阵表示图像。

• imwrite 函数用于保存图像,可以指定格式和压缩参数。

运行结果:

2. 图像的缩放 :

matlab

c 复制代码
% 缩放到原尺寸的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

c 复制代码
% 旋转图像
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

c 复制代码
% 裁剪感兴趣区域
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

c 复制代码
% 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

c 复制代码
% 读取图像
img = imread('peppers.png');
% 旋转图像
rotatedImg = imrotate(img, 90);
% 保存图像
imwrite(rotatedImg, 'rotated_peppers.png');

运行结果:

2. 将图像裁剪为原尺寸的一半,显示并保存 :

matlab

c 复制代码
% 读取图像
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

c 复制代码
% 读取图像
img = imread('peppers.png');
% 转换为HSV
hsvImg = rgb2hsv(img);
% 显示图像
figure; imshow(hsvImg); title('HSV Image');

运行结果:

相关推荐
AI数据皮皮侠9 分钟前
中国地级市旅游人数、收入数据(2000-2023年)
大数据·人工智能·python·深度学习·机器学习·旅游
墨染点香10 分钟前
LeetCode 刷题【103. 二叉树的锯齿形层序遍历、104. 二叉树的最大深度、105. 从前序与中序遍历序列构造二叉树】
算法·leetcode·职场和发展
mooooon L15 分钟前
DAY 43 复习日-2025.10.7
人工智能·pytorch·python·深度学习·神经网络
啊我不会诶24 分钟前
23ICPC澳门站补题
算法·深度优先·图论
zzywxc78728 分钟前
AI 在金融、医疗、教育、制造业等领域都有广泛且深入的应用,以下是这些领域的一些落地案例
人工智能·金融·自动化·prompt·ai编程·xcode
你的大佬99930 分钟前
阿里云百炼ai模型
人工智能·阿里云·云计算
koo3641 小时前
李宏毅机器学习笔记16
人工智能·笔记·机器学习
MoRanzhi12031 小时前
11. Pandas 数据分类与区间分组(cut 与 qcut)
人工智能·python·机器学习·数学建模·分类·数据挖掘·pandas
IT_陈寒1 小时前
Java并发编程避坑指南:7个常见陷阱与性能提升30%的解决方案
前端·人工智能·后端
星期天要睡觉1 小时前
计算机视觉(opencv)——嘴部表情检测
人工智能·opencv·计算机视觉