Copyright © 2021 @Linyer. All Rights Reserved.
参考资料:
- @刘成龙 所著 Matlab图像处理
MATLAB 基础
MATLAB
语言是由美国 Math Works公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一。其内容涉及矩阵代数、微积分,应用数学、有限元分析、科学计算、信号与系统、神经网络、小波分析及其应用、数字图像处理、计算机图形学,电子线路、电机学、自动控制与通信技术、物理、力学和机械振动等方面。
MATLAB 3大特点
- 功能强大。主要包括数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算。
- 界面友好,编程效率高。MATLAB是一种以矩阵为基本单元的可视化程序设计语言,语法结构简单,数据类型单一,指令表达与标准教科书的数学表达式相近。
- 开放性强。MATLAB有很好的可扩充性,可以把它当成一种更高级的语言去使用,使用它很容易编写各种通用或专用应用程序。
- 将MATLAB用于数字图像处理,其优点在于以下几个方面:
- 强大、高效的矩阵和数组运算功能。
- 语法规则与一般的高级语言类似,一个稍有编程基础的人能很快熟悉掌握。
- 语言简洁紧凑,使用灵活,程序书写形式自由。而且库函数十分丰富,避免了繁杂的子程序编程任务。
- 向用户提供各种方便的绘图功能。
- 提供了图像处理工具箱、数字信号处理工具箱、小波工具箱等各种功能强大的工具箱。
- 集成了各种变换函数,不仅方便了研究人员,而且使源程序简洁明了,易实现。
MATLAB 图像处理工具箱
-
数字图像处理工具箱函数包括以下16类:
- 图像显示
- 图像文件输入/输出(I/O)
- 图像几何运算
- 图像像素值及统计处理
- 图像分析
- 图像增强及平滑
- 图像线性滤波
- 二维线性滤波器设计
- 图像变换
- 图像邻域及块操作
- 二像图像操作函数
- 基于区域的图像处理
- 颜色映像处理
- 颜色空间转换
- 图像类型和类型转换
- 工具箱参数设置等
-
MATLAB图像处理工具箱支持的 4 种基本图像类型是:
- 索引图像、灰度图像、二值图像、RGB图像。
-
由于有的函数对图像类型有限制,这4种类型可以用工具箱的类型转换函数相互转换。
-
MATLAB可操作的图像文件包括BMP、 HDF、JPEG、PCX、TIFF、XWD等格式。
命令行窗口
- 求 1~90 这 90 个数字之和
- 定义矩阵,并赋值
- 调用内置函数
sum
,求矩阵元素之和
>> Y = 1:90
Y =
1 至 19 列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
20 至 38 列
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
39 至 57 列
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
58 至 76 列
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
77 至 90 列
77 78 79 80 81 82 83 84 85 86 87 88 89 90
>> sum(Y)
ans =
4095
- 已知函数的误差值(
errorbar
函数)%
作为代码注释
>> x = linspace(0,2*pi,30);
>> y = cos(x);
>> e = std(y)*ones(size(x)); % 标准差
>> errorbar(x,y,e)
M 文件编辑窗口
- 在命令行下输入
edit
则弹出 M 文件编辑器窗口
命令行窗口 常用命令
命令 | 功能 |
---|---|
clc | 擦去一页命令窗口,光标回屏幕左上角 |
clear | 从工作空间清除所有变量 |
clf | 清除图形窗口内容 |
who | 列出当前工作空间中的变量 |
whos | 列出当前工作空间中的变量及信息 |
delete <文件名> | 从磁盘删除指定文件 |
which <文件名> | 查找指定文件的路径 |
clear all | 从工作空间清除所有变量和函数 |
help <命令名> | 查询所列命令的帮助信息 |
save name | 保存工作空间变量到文件name.mat |
save name x y | 保存工作空间变量x y 到文件name.mat |
load name | 加载name 文件中的所有变量到工作空间 |
load name x y | 加载name 文件中的变量x y 到工作空间 |
diary name.m | 保存工作空间一段文本到文件name.m |
diary off | 关闭日志功能 |
type name.m | 在工作空间查看name.m 文件内容 |
what | 列出当前目录下的m 文件和mat 文件 |
↑或者Ctrl+P | 调用上一次的命令 |
↓或者Ctrl+N | 调用下一行的命令 |
←或者Ctrl+B | 光标退后一格 |
→或者Ctrl+F | 光标前移一格 |
Ctrl+←或者Ctrl+R | 光标向右移一个单词 |
Ctrl+→或者Ctrl+L | 光标向左移一个单词 |
Home或者Ctrl+A | 光标移到行首 |
End或者Ctrl+e | 光标移到行尾 |
Esc或者Ctrl+u | 清除一行 |
Del或者Ctrl+d | 清除光标后字符 |
Backspace或者Ctrl+h | 清除光标前字符 |
Ctrl+k | 清除光标至行尾字 |
Ctrl+c | 中断程序运行 |
常用的标点符号
标点符号 | 作用 |
---|---|
空格 | 数组元素分隔符 |
逗号, | 数组元素分隔符,此分隔符用于指令间的分隔 |
分号; | 不显示结果指令结束标志,区分数组的行 |
冒号: | 生成一维数值数组,用作下标 |
百分号% | 注释 |
引号'' | 字符串标示符 |
圆括号() | 设置运算优先级,援引数组,函数指令输入 |
方括号[] | 输入数组,函数指令输出 |
花括号{} | 建立元胞数组 |
等号= | 给变量赋值 |
省略号... | 链接较长的单行未完指令 |
系统中的特殊变量
特殊变量 | 说明 |
---|---|
ans | 如果未定义变量名,用于默认的计算结果存储 |
pi | 圆周率,15位有效位 |
realmin | 最小的正实浮点数 |
realmax | 最大的正实浮点数 |
bitmax | 最大的正整浮点数 |
inf 或者Inf | 无穷大 |
eps | 浮点运算的相对精度 |
NaN 或者nan | 非数,不定量,即结果不能确定 |
i 或者j | 虚数单位 |
nargin | 函数输入参数个数 |
nargout | 函数输出参数个数 |
lasterr | 存放最新的错误信息 |
lastwarn | 存放最新的警告信息 |
- 变量大小写敏感
关键字
- 用命令
iskeyword
即可列出关键字,关键字不能作为变量
>> iskeyword
ans =
20×1 cell 数组
{'break' }
{'case' }
{'catch' }
{'classdef' }
{'continue' }
{'else' }
{'elseif' }
{'end' }
{'for' }
{'function' }
{'global' }
{'if' }
{'otherwise' }
{'parfor' }
{'persistent'}
{'return' }
{'spmd' }
{'switch' }
{'try' }
{'while' }