1. matlab 开始页面


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

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 ··· 1,2,3⋅⋅⋅ , 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

1、matlab页面和基本操作相关推荐

  1. MATLAB主窗口中 主菜单栏有,Matlab介绍与基本操作.ppt

    Matlab介绍与基本操作 MATLAB介绍与基本操作 数学软件与Matlab的关系 国际上最常用的三种数学类科技应用软件为:3M Matlab Mathematica Maple P.S:还有Mat ...

  2. matlab空域滤波,MATLAB数字图像处理基本操作及空域滤波

    MATLAB数字图像处理基本操作及空域滤波 实验一 MATLAB 数字图像处理基本操作及空域滤波实验目的1.了解有关数字图像处理的基本概念,熟悉Matlab软件中关于数字图像处理的基本命令,掌握利用M ...

  3. matlab 图像上下翻,Matlab图像九宫格基本操作(翻转,镜像等)+位图操作

    Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 这次blog提到的操作对于matlab来说都很基础,而且对于有编程和计算机基础的人来 ...

  4. 【MATLAB】 01 基本操作与数组输入

    文章目录 01 基本操作与数组输入 Intro 认识 MATLAB 操作界面 像使用计算器一样使用 MATLAB Exercise 嵌套函数 变量 数据类型 `who` 与 `whos` 特殊变量与常 ...

  5. MATLAB教学_02基本操作与矩阵入

    本文主要讲了学习 'MATLAB教程_台大郭彦甫' P2_02基本操作与矩阵输入 中的一些心得. 视频地址: https://www.bilibili.com/video/av68228488?p=2 ...

  6. matlab基本矩阵运算,MATLAB入门:基本操作与矩阵运算

    基本操作 把matlab当作计算器使用 把matlab当计算器使用基本符合常识,不过多赘述(下同,着重记录与常识有出入的地方). 需要注意的有: =表示赋值,判断是否相等用==: matlab中没有l ...

  7. matlab学习——1.基本操作

    matlab代码:标准化 % Min-Max标准化(Min=0,Max=1) normalized_data = mapminmax(source_data', 0, 1)'; normalized_ ...

  8. Matlab字符串的基本操作

    在matlab工作空间中,字符串是以向量形式来存储的,我们把用''所包含的内容来表示该字符串. ?s='student' s = student 字符串也可以作为矩阵来连接. ?s1='who' s1 ...

  9. matlab与python交互_Python和MATLAB交互的基本操作

    MATLAB和Python可以在一定程度上互相调用,起到互补的作用.本文就来抛砖引玉,总结一些最基本的操作步骤. 在MATLAB调用Python MATLAB里可以很方便的调用Python的模块.笔者 ...

最新文章

  1. Windows中的tree命令不可用的解决办法
  2. python 矩阵常用计算
  3. 工厂方法注入(静态和非静态)
  4. 分享一个数据库工具DTOOLS
  5. 自己动手丰衣足食之 jQuery 数量加减插件
  6. [architecture]-Armv8 Cryptographic Extension介绍
  7. 每个开发人员都应该知道的 15 个 IntelliJ IDEA 快捷方式
  8. BZOJ1041:[HAOI2008]圆上的整点(数论)
  9. python输入的方式有几种_Python输入方式具体的三种实现方式
  10. 中国服务业发展的轨迹、逻辑与战略转变——改革开放40年来的经验分析
  11. 基础篇:6.4)形位公差-符号 Symbol
  12. 微信小程序模拟器加载图片成功,真机加载失败
  13. 【苹果家庭群发推】Metal performance shader软件安装框架
  14. 预测贷款用户是否逾期:数据清洗与预处理
  15. 案例分享:建设企业网上办公综合平台
  16. 应用程序正常初始化(0xc00000005)失败.请单击“单击”,终止应用程序
  17. ActionListenner
  18. [bzoj1984]月下“毛景树” 树链剖分
  19. python实现文本查重系统_NLP之gensim库python实现文本相似度/匹配/查重
  20. 轻松玩转Windows平板

热门文章

  1. JZ2400 linux下使用eop
  2. 解决因缺少msvcp71.dll无法启动Windows程序
  3. Windows Server 2008上网设置——IE
  4. @河南省文旅厅 携手让非遗“活”起来!
  5. 内存数据库、磁盘数据库、分布式数据库区别
  6. 上线 B 站,钢铁侠出镜 AI 科普纪录片!
  7. “人”之为人:道德+技能+创新
  8. 关联规则(Association Rules)学习
  9. 这12首极短的诗歌,适合收藏
  10. 乾坤调研(qiankun)