1.Matlab图像处理编程基础

1.1 Matlab操作简介

基本文件操作、变量使用、程序流程控制、打开和关闭图像、图像格式转换、存储方式...

1.1.1 软件环境

>>提示符后面可输入算式,是Matlab的基本计算功能。分号结尾不输出结构,只保存在工作区;无分号结尾则直接输出结果。

new->M-file:创建新的Matlab文件。%注释符。

跨行语句,一个长语句,可分为两行写,在第一行最后加“...”如下:

>>z=1*2*3*4...
    *5*6*7;

1.1.2 文件操作

Matlab可自动搜索当前路径和path路径变量中所含目录下的文件。

直接在命令行窗口键入文件名即可运行。、

若要运行其他目录下的文件,需用addpath和genpath 等命令向路径列表中添加路径。

addpath('dir1','dir2',...,'-flag')
//该函数可以接收任意数目的参数。
//dir为绝对路径
//flag参数用来指定函数的行为,可选参数。
//0或begin或省略:这些路径被添加到搜搜列表的最前面,同名文件优于其他文件被找到并执行。
//1或end:这些路径被添加到最后。

genpath('directory');
//函数返回包含directory(绝对路径)及其全部子目录的数据,可以作为路径参数调用addpath,将数据全部包含到path变量中。

open 命令:可以用windows默认操作打开一系列其他文件。

edit 命令:只能编辑m文件。

open filename; // edit filename;

1.1.3 在线帮助

help command-name

doc functionname:比help信息多。

lookfor keyword:如果忘记命令或者函数的完整拼写。(关键词查找)

1.1.4 变量的使用

Malab中,对一变量赋值,不需提前定义和申明类型,自动根据等号右侧的数据类型确定变量的数据类型。

数字存储默认 double,字符存储默认char,字符串即char数组。

内部变量

ans: 默认结果输出变量
pi:圆周率
Inf 或 inf:无穷大值
i或j:虚数单位
eps:浮点运算的相对精度
realmax:最大的正浮点数
realmin:最小的正浮点数
NaN或nan:不定量,不定式
nargin:函数输入参数个数
nargout:函数输出参数个数
lasterr:最近的错误信息
lastwarning:最近的警告信息
computer:计算机类型
version:Matlab版本

who /whos 查看工作区变量情况;

clear/clear all,清除工作区所有变量,clear还可以清屏,clear+变量,特定变量清除。

图像处理中经常使用uint8类型,但matlab经常是double ,并且某些函数只接受该类型的变量。

数据类型转换:destination_var=type_name(source_var);

变量数据保存和读取:save filename arg1 arg2 arg3  /  load filename arg1 arg2 arg3

>>save('mydata.mat','price','age'),如果不指定变量名,可以将所有变量全部保存。

1.1.5 矩阵的使用

1.矩阵的定义

A=[1,2,3;4,5,6;7,8,9]

v=[2:1:10] :从2到10,步长为1行向量。

v=[2:10]:间隔为1,步长可省略。

2.特殊矩阵生成

eye:单位矩阵
zeros:全部元素为0矩阵
ones:全部元素为1矩阵
true:全部元素为真的逻辑矩阵
false:全部元素为假的逻辑矩阵
rand:均匀分布的随机矩阵
randn:正态分布的随机矩阵
randperm:随机排列
Linspace:线性等分的矩阵
Logspace:对数等分的向量
Company:产生伴随矩阵
Hadamarb:产生Hadamarb矩阵
Magic:幻方矩阵
Hilb:Hilbert矩阵
Invhilb:逆Hilbert矩阵

3.获得矩阵大小和维度

size(A,dim).

A为数组,dim为维度。

ndims(A):查看数组维度 

4.访问矩阵元素

A(m,n):(m,n)元素
A(:,n):第n列向量
A(m,:):第m行向量
A(m1:m2,n1:n2)
A(m:end,n)
A(:):将矩阵按列存储得到一个长列向量

5.矩阵运算

+
-
*:矩阵乘法
.*:每个对应元素相乘
.^:每个对应元素进行给定幂次的乘方
^:矩阵乘方
\:左除(相当于左乘逆矩阵)
/:右除(相当于右乘逆矩阵)
.\:对应位置元素的左除(对数值而言,左除右除的不同是除数与被除数的转化)
./:对应位置元素的右除
.':转置(不对复数取共轭)
':应用于复数数值时是取共轭,实数矩阵是求转置,复数矩阵求共轭再转置。

1.1.6 细胞数组(Cell Array)和结构体(Structure)

1.细胞数组

细胞数组以数组的形式存在,但其各个元素都可以是不同的类型。

细胞数组可以这样定义
cell={'abc',15,[1 0;15 2]};
也可以单独定义某个元素
cell{1}='abc';
call{2}=15;
访问方式:
cell{1}
如果
cell(1)可以得到该变量的说明

2.结构体

定义结构体
struct.Name='harry';
struct.Age=15;

输出结构体
struct

访问
name=struct.Name

1.1.7 关系运算和逻辑运算

关系运算即大于小于等

逻辑运算即与或非~,异或Xor;

1.1.8 常用图像处理数学函数

all 是否所有元素非零
any 是否至少1元素非零
isempty 
isequal
isinf
isnan
isreal 是否实矩阵
find
det 矩阵的行列式的值
diag 抽取对角线元素
eig  求特征值和特征向量
fliplr 左右翻转
filpud 上下翻转
inv 求逆矩阵
lu  三角分解
norm 求范数
orth 正交化
poly 特征多项式
qr 正交三角分解
rank 
svd
trace
Tril 抽取上三角矩阵
Tnu 抽取下三角

1.1.9 Matlab 程序流程控制

if expression1
   statement1;
elseif expression2
    statement2;
else statement3;
end

for index=sart:increment:end

...
end

while ...
....
end

break
continue

switch ...
case ...
...
case ...
...
end

return

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值