第一章 MATLAB数字图像处理编程基础
2024-09-03 06:58:00
1 为什么用MATLAB
MATLAB的图像处理工具箱(Image Processing Toolbox,IPT)封装了一系列不同图像处理需求的标准算法,它们都是通过直接或间接调用MATLAB中矩阵运算和数值运算函数来完成图像处理任务。
2 MATLAB R2011a简介
2.1文件操作函数
1.addpath函数
1.addpath函数
向path变量中加入指定的目录路径,其原型如下。
addpath('dir','dir','dir3'...'-flag')
参数说明:
dir为要加入的目录路径,这些变量必须是绝对路径;
flag可以有来指定函数行为:
(flag=0或begin,flag参数省略时,默认为此项)时,这些路径被添加到搜索路径最前面;
(flag=1或end),路径被添加到搜索路径列表最后。
可以在addpath函数前后查看path变量内容,以确定添加成功。
2.genpath函数
生成包含指定目录下所有子目录的路径变量,其原型如下。
p=genpath('directory');
参数说明:
(1)参数directory为指定的目录。
(2)返回值:
函数返回包含指定目录本身和其全部子目录的数据。 返回值也可以直接提供为addpath函数,从而直接添加一个目录与其全部子目录到路径列表。
函数用途示例:可以方便调用一个程序工具箱路径,就可以直接使用工具箱中的函数文件了。
3.打开与编辑M文件
open filname//打开文件
edit filename//编辑文件
4.查看工作空间的变量
who whos
5.读取保存工作区中的变量
save filename arg1 arg2 arg3...
load filename arg1 arg2 arg3...
用处:matlab与vc相比执行效率不高,可根据需要在希望中断程序时保存程序的所有上下文变量,以备之后随时从中断点开始执行
6.生成特殊矩阵函数
函数名称 | 用途 |
eye |
产生单位矩阵 |
zeros | 产生全部元素为0的矩阵 |
ones | 产生全部元素为1矩阵 |
true | 产生全部元素为真的逻辑矩阵 |
false | 产生全部元素为假的逻辑矩阵 |
rand | 产生均匀分布随机矩阵 |
randn | 产生正态分布随机矩阵 |
randperm | 产生随机排列 |
limspace | 产生线性等分的矩阵 |
logspace | 产生对数等分向量 |
company | 产生伴随矩阵 |
hadamarb | 产生hadamarb矩阵 |
magic | 产生幻方矩阵 |
hib | 产生hibert矩阵 |
invhilb | 产生逆hibert矩阵 |
7.获得矩阵大小和维度
size(A,dim)
(1)A为需要查看大小的数组
(2)dim为指定的要查看的维数。dim省略时返回一个包含数组从第一维到最后一维大小的数组 ndims(A)
返回A的维数
8.获取矩阵子块
命令 | 用途 |
A(M,N) | 提取m行n列位置的一个元素 |
A(:N) | 提出第n列 |
A(M,:) | 提出第M行 |
A(m1:m2,n1:n2) | 提出m1到m2行,n1到n2列的一个子块 |
A(m:end,n) | 提出m行到最后一行,第n列的一个 |
A(:) | 将矩阵按列存储得到一个长列向量 |
9.细胞数组(Cell Array)
例:
Cell={'Harry',15,[1 0;15 2]};
元素访问:
Cell{1}='Harry';
Cell{2}=15;
Cell{3}={1 0;15 2}; 用圆括号形式的索引可以得到变量的描述,如下所示:
>>Cell(3)
ans=
{2*2 double}
10.结构体
Struct.Name='Harry';
Struct.Age=15;
Struct.SalaryMatrix={1 0;15 2};
>>
Struct%显示结构体的内容
Struct=
Name:'Harry'
Age:15
SalaryMatrix:[2*2 double]
>> Struct.SalaryMatrix ans = [ 1] [0]
[15] [2]
%访问结构体的内部字段
>>
name=Struct.Name;
11常用图像处理函数
MATLAB函数分有:数值函数,矩阵函数,逻辑函数等。
函数 | 用途 |
all | 是否所有元素非零 |
any | 是否至少有一元素非零 |
isempty | 是否空矩阵 |
isequal | 是否两矩阵相同 |
isinf | 判断有无inf元素 |
isnan | 判断有无nan元素 |
isreal | 判断是否实矩阵 |
find | 返回一个由非零元素下标组成的矩阵 |
det | 计算方阵对应的行列式 |
diag | 抽取对角线元素 |
eig | 求特征值和特征向量 |
flipud | 上下翻转 |
inv | 求逆矩阵 |
lu | 三角分解 |
norm | 求范数 |
orth | 正交化 |
poly | 求特征多项式 |
qr | 正交三角分解 |
rank | 求矩阵的秩 |
svd | 奇异值分解 |
trace | 求矩阵的迹 |
Tril | 抽取上三角矩阵 |
tnu | 抽取下三角阵 |
最新文章
- jqGrid合并表头
- awk分隔符设置技巧
- TypeError: coercing to Unicode: need string or buffer, ChatRoom found
- 如何使用THashedStringList
- Dubbo架构设计详解
- java 16 -11 ArrayList存储自定义对象并增强for遍历
- linux中的sticky bit
- UVa 10917 A Walk Through the Forest
- cppunit学习笔记
- 任务调度开源框架Quartz动态加入、改动和删除定时任务
- 自己用h5写的转盘。写贴上来吧。
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(三)一个简单的rtsp播放器
- delphi cxrid设置column靠左显示
- tp5 点击刷新验证码
- drf相关问题
- zlib简单使用说明(转)
- C++ 中的不定参数与格式化字符串 # ## vsprintf
- centos7下 nginx配置upstream 不能直接代理到本机tomcat的解决
- 工资薪金VS劳务报酬
- 【转】Mac OS X Terminal 101:终端使用初级教程