1、matlab页面和基本操作

1. matlab 开始页面


博主使用的是 MATLAB R2018b 版本,所有代码都在该版本下运行。

matlab开始页面

1.1 新建脚本的页面


左侧:该路径下的文件,包括图片文件、代码文件(.m),可以点击预览。
中间上部:代码编辑区,可以编辑代码。
中间下部:命令行窗口,可以输入命令,做一些操作。
右侧:工作区,在命令行或代码区定义的变量都会在工作区显示出来。


上方菜单栏可以选择编辑器,在编辑器编辑完代码可以点击上面的运行开始运行自己写的代码。

1.2 命令行窗口命令

clc:清空命令行窗口。把下方命令行的窗口输入的东西清空

clear:清空右侧工作区。当右侧工作区有内容时,可以用该命令清空

close all:把打开的窗口全部关闭。当打开预览的图片时是一个窗口,可以用该命令关闭所有窗口

:在命令行输入命令时,需要在命令结尾加一个分号,然后回车执行

:在代码编辑区编写代码时,应将这三个命令都加在行首(示例见下图)


1.3 简单的基本命令

imshow('ImageName');

从右侧目录内选择一个图片文件,并新建一个窗口打开显示

title('TitleName')

在显示的图片上方显示标题

figure;

默认所有图片都显示在一个 figure 里面(第二张图覆盖第一张),可以用 figure; 来新开一个 figure 显示新的图片

:当一行有多个命令时用逗号分开,命令换行时用分号结尾

示例:

在这里插入图片描述


1.4 一个 figure 显示多张图

subplot(n, m, p), imshow('ImgaeName');

在一个 figure 中设置 n × m n×m n×m 张图片的位置,从左到右、从上到下依次为 1 , 2 , 3 ⋅ ⋅ ⋅ 1,2,3 ··· 123⋅⋅⋅p 为在第 p 张显示 imshow 的图片

示例:

在这里插入图片描述

2. 图片变量和图片转换


2.1 读取图片

fa = imread('imagename');
  1. 读入一张图片,并将该图片赋给以fa命名的变量,然后在工作区会出现一个条目 fa ,有该条目的名称和值信息,对于 RGB 的图一般为三个维度的值。
  2. 工作区的uint8代表8位图,即每个像素点的取值为 0-255(从黑到白)。
  3. 下图中工作区的变量 fa 表示一张 RGB 的图,215×329×3 代表 *宽×高×维度 ,三维即代表有三层同样大小的图片重叠堆成,每张图片是不一样的颜色分量,详细情况将在后续讲解。

2.2 将 RGB 图片转换为灰度图

g = rgb2gray(fa);

把变量名为 fa 的 RGB 图片转换为灰度图,灰度图有一个维度的值,每个像素点的值也是 8 位表示(即取值为0-255),可以看下图工作区变量 g 的示例。

2.2 将图片转换为二值图

b = imbinarize(g);

灰度图 g 转换为二值图,二值图也为一维图,二值图的每个像素点只能取 1(代表白色) 或 0(代表黑色),其中的参数必须是灰度图。

在matlab2018中建议用 imbinarize 函数,在 matlab2016 中用 im2bw代替 imbinarize,两个均可以带有阈值,两个函数的详细区别见 这里

在这里插入图片描述

2.3 调整对比度

j = imadjust(g);

自动调整灰度图 g 的对比度,传入的参数一定要是灰度图(效果见图)

在这里插入图片描述


2.4 对图片的值进行映射

 j = imadjust(g, [low_in; high_in], [low_out; high_out]);
  1. 对图像 g 中的值映射,映射后的图像为 j
  2. 映射:使 g 图中在 low_inhigh_in 之间的像素值,等比例映射为 low_outhigh_out 之间。值低于 low_in 的值映射为 low_out ,高于 high_in 的值被映射为 high_out
  3. 后面两个参数都可以省略,即用 [ ] 来代替,代表 [0 1]

2.5 综合示例

以下的示例先展示了将图片转换为灰度图,然后输出了用 imadjust 自动调整的图片,然后显示了用 imadjust 自己输入参数调整的图片。

在这里插入图片描述
示例代码:

clear,clc,close all;
f=imread('lenna.png');
fa=rgb2gray(f);
figure;
imshow(fa),title('灰度图');
ga=imadjust(fa);
figure;
imshow(ga),title('自动调整');
gb=imadjust(fa,[0.4 0.6],[0.5 0.8]);
figure;
imshow(gb),title('手工指定值');

3. 直方图


3.1 直方图的函数

imhist(g);

输出灰度图 g 的直方图(对有相同像素值的像素点个数统计的图表)。

以下示例输出了将 RGB 的图片转换为灰度图后,统计灰度图 fa 的直方图。

上文提到,灰度图是一维图,每个像素点的取值为 0-255,从直方图横坐标可以看到,所有像素点的取值就是在 0-255 内,取不同值的像素个数也在直方图内的纵坐标显示出来了。

在这里插入图片描述
示例代码:

clear,clc,close all;
f=imread('lenna.png');
fa=rgb2gray(f);
subplot(1,2,1),imshow(fa);
subplot(1,2,2),imhist(fa);

3.2 直方图均衡操作

h = histeq(g);

对灰度图 g 进行直方图均衡,使图像的直方图的像素值分布的更均匀。

下例可以看到,通过 histeq 函数作用后,像素值大小不同的像素点的个数分布更加均匀了。

在这里插入图片描述
示例代码:

clear,clc,close all;
f=imread('lenna.png');

fa=rgb2gray(f);
subplot(2,2,1),imshow(fa);
subplot(2,2,2),imhist(fa);

gh=histeq(fa);
subplot(2,2,3),imshow(gh)
subplot(2,2,4),imhist(gh);



4. 额外知识


%:注释代码

%%:代码分节,将下面的代码单独分为一节,可以全部注释后在 主页>预设>编辑器/调试器>代码折叠 勾选可折叠节

Ctrl/Command + r:注释所有选中行
Ctrl/Command + f:去除所有选中行的注释
Ctrl/Command + i:缩进所有选中行



5. 附图

moon.jpg

在这里插入图片描述

lenna.png

在这里插入图片描述

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值