close all; % 关闭当前所有图形窗口
clear all; % 清空工作空间变量
clc; % 清屏
I = imread('lena.bmp'); % 读取图像信息
set(0, 'defaultFigurePosition', [100, 100, 1000, 500]); % 修改图形图像位置的默认设置
set(0, 'defaultFigureColor', [1 1 1]); % 修改图形背景颜色的设置
figure,
subplot(221), imshow(I); % 显示原始灰度图像
subplot(222), image(I); % 使用image函数显示灰度图像,默认颜色映射为gray
subplot(223), image([50, 200], [50, 300], I); % 在指定的坐标范围内显示灰度图像
subplot(224), imagesc(I, [60, 150]); % 使用imagesc函数显示灰度图像,并指定颜色映射的范围
解释:
-
close all;
:关闭所有打开的图形窗口。 -
clear all;
:清空工作空间中的所有变量。 -
clc;
:清除命令窗口中的所有文本。 -
I = imread('lena.bmp');
:读取名为lena.bmp
的图像文件,假设它是一个灰度图像。 -
set(0, 'defaultFigurePosition', [100, 100, 1000, 500]);
:设置图形窗口的默认位置和大小。 -
set(0, 'defaultFigureColor', [1 1 1]);
:设置图形窗口的背景颜色为白色。 -
figure,
:创建一个新的图形窗口。 -
subplot(221), imshow(I);
:在第一个子图(2,2,1)中显示原始灰度图像I
。 -
subplot(222), image(I);
:在第二个子图(2,2,2)中使用image
函数显示灰度图像I
。image
函数与imshow
函数不同之处在于imshow
默认使用归一化的数据(值在0到1之间),而image
使用数据本身的值(通常是0到255)。 -
subplot(223), image([50, 200], [50, 300], I);
:在第三个子图(2,2,3)中,使用image
函数在指定的坐标范围内([50, 200]和[50, 300])显示灰度图像I
。 -
subplot(224), imagesc(I, [60, 150]);
:在第四个子图(2,2,4)中,使用imagesc
函数显示灰度图像I
,并指定颜色映射的范围为[60, 150]。imagesc
函数会将数据的值映射到指定的颜色映射范围内。
拓展:
- 自定义颜色映射:可以自定义颜色映射来显示图像。
% 自定义颜色映射显示
colormap(jet); % 使用jet颜色映射
subplot(225), imshow(I);
- 保存显示的图像:可以将显示的图像保存为文件。
% 保存显示的图像
saveas(gcf, 'lena_display.png');
- 显示图像信息:可以显示每个图像的尺寸、数据类型等信息。
disp(['Image size: ', mat2str(size(I))]);
disp(['Image class: ', class(I)]);