MATLAB学习各类函数归类总结笔记(主要图像处理方面)

A开头

B开头

- bwlabel函数

调用格式:
L = bwlabel(BW,n)或[L,num] = bwlabel(BW,n)
返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。num返回的就是BW中连通区域的个数。

C开头

- cell2mat函数

把一个由多个矩阵构成的元胞数组转换成一个矩阵,即把元胞数组中的多个矩阵合并成一个矩阵
调用格式:
m=cell2mat(c)

C = {1, [2, 3]; [4; 5; 6], [7, 8; 9, 0; 0, 1]}

C =

2×2 cell 数组

{[       1]}    {1×2 double}
{3×1 double}    {3×2 double}

M = cell2mat(C)

M =

 1     2     3
 4     7     8
 5     9     0
 6     0     1

注意事项:
1、

C = {1, [2, 3]; [4; 5; 6], [7, 8; 9, 0; 0, 1]}

C =

2×2 cell 数组

{[       1]}    {1×2 double}
{3×1 double}    {3×2 double}

M = cell2mat©

M =

 1     2     3
 4     7     8
 5     9     0
 6     0     1

注意事项:

C = {1, [2, 3]; [4; 5; 6], [7, 8; 9, 0; 0, 1]}

C =

2×2 cell 数组

{[       1]}    {1×2 double}
{3×1 double}    {3×2 double}

M = cell2mat©

M =

 1     2     3
 4     7     8
 5     9     0
 6     0     1

注意事项:
1、使用cell2mat可以将cell转换为数组;若对象不是cell,我们便不能使用该函数
2、在元胞数组中,处于同行的矩阵要有相等的行数,处于同列的矩阵要有相等的列数

- ceil函数

1、ceil函数:朝正无穷大方向取整

用法说明:w=ceil(z)函数将输入z中的元素取整,值w为不小于本身的最小整数。

D开头

E开头

- edge函数

BW = edge(I)
返回包含1的二进制图像BW,其中函数在输入图像I中找到边缘,而在其他位置找到0。默认情况下,edge使用Sobel边缘检测方法。
BW2=double(BW1);
edge函数不能接收二进制图片,使用double强制把你的二进制图像答转换成double型的.
BW = edge(I,method)使用方法指定的边缘检测算法检测图像I中的边缘
BW = edge(I,method,threshold)返回所有比阈值强的边缘。
BW = edge(I,method,threshold,direction)指定要检测的边缘的方向。 Sobel和Prewitt方法可以检测垂直方向和/或水平方向上的边缘。罗伯茨方法可以检测到与水平线成45度角,与水平线成135度角或两者兼有的边缘。仅当方法为“ Sobel”,“ Prewitt”或“ Roberts”时,此语法才有效。
BW = edge(___,‘nothinning’)跳过了边缘细化阶段,可以提高性能。仅当方法为“ Sobel”,“ Prewitt”或“ Roberts”时,此语法才有效。
BW = edge(I,method,threshold,sigma)指定sigma,即滤波器的标准偏差。仅当方法为“ log”或“ Canny”时,此语法才有效。
BW = edge(I,method,threshold,h)使用带有指定过滤器h的’zerocross’方法检测边缘。仅当方法为“ zerocross”时,此语法才有效。
[BW,threshOut] = edge(___)也返回阈值。
[BW,threshOut,Gv,Gh] = edge(___)还返回方向梯度幅度。对于Sobel和Prewitt方法,Gv和Gh对应于垂直和水平渐变。对于Roberts方法,Gv和Gh分别对应于与水平线成45°和135°角的梯度。仅当方法为“ Sobel”,“ Prewitt”或“ Roberts”时,此语法才有效。
例:
BW = edge(I,‘sobel’,thresh,direction)
BW = edge(I,‘roberts’,thresh)
BW = edge(I,‘log’,thresh,sigma)
BW = edge(I,‘canny’,thresh,sigma)

F开头

- find函数

1、返回非零元素的位置
在这里插入图片描述

2、返回条件成立的元素位置
例如:find(A==m); 查找数组A中元素值为m的位置并返回其索引号

3、返回前N个非零元素的位置,find(A,X)

4、返回最后一个非零值的位置find(A,1,‘last’)

5、[a,b,v] = find(A),找出A中非零元素所在的行和列,分别存储在a和b中,并将结果放在v中.

- fix函数

1、fix函数:向零方向取整

用法说明:y=fix(x) 函数将x中元素零方向取整,得到y是一个整数数组。对于复数z,分别对实部和虚部取整

G开头

H开头

I开头

- imwrite函数

imwrite函数的作用是将图像写入图形文件。
调用格式:
imwrite(A,filename)
imwrite(A,filename) 将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式。imwrite 在当前文件夹中创建新文件。输出图像的位深度取决于 A 的数据类型和文件格式。

- imdilate函数

功能:对图像实现膨胀操作。

用法:IM2 = imdilate(IM,SE)
IM2 = imdilate(IM,NHOOD)
IM2 = imdilate(IM,SE,PACKOPT)
IM2 = imdilate(…,PADOPT)
IM2 = imdilate(IM,SE) 膨胀灰度,二值,压缩二值图像IM,返回IM2。参数SE为由strel函数返回的结构元素或者结构元素对象组。
IM2 = imdilate(IM,NHOOD)膨胀图像IM,这里NHOOD是定义结构元素邻域0和1的矩阵。
IM2 = imdilate(IM,SE,PACKOPT)定义IM是否是一个压缩的二值图像。
IM2 = imdilate(…,PADOPT)指出输出图像的大小。

- ind2sub函数

作用把矩阵或数组的线性索引转化为坐标。

调用格式:(X,Y)=ind2sub(size(A) , IND);

size(A)表示的是矩阵A的大小,IND为一个索引序列,返回值(X,Y)是索引序列在矩阵A中的所有对应坐标。

J开头

K开头

L开头

M开头

- meshgrid函数

1、meshgrid函数用两个坐标轴上的点在平面上画格,即生成网格点函数。
用法:
  [X,Y]=meshgrid(x,y)
  [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
  [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
例如例题1:
  x=-3:1:3;y=-2:1:2;
  [X,Y]= meshgrid(x,y);
  这里meshigrid(x,y)的作用是产生一个以向量x为行,向量y为列的矩阵,而x是从-3开始到3,每间隔1记下一个数据,并把这些数据集成矩阵X;同理y则是从-2到2,每间隔1记下一个数据,并集成矩阵Y。即
  X=
  -3 -2 -1 0 1 2 3
  -3 -2 -1 0 1 2 3
  -3 -2 -1 0 1 2 3
  -3 -2 -1 0 1 2 3
  -3 -2 -1 0 1 2 3
  Y =
  -2 -2 -2 -2 -2 -2 -2
  -1 -1 -1 -1 -1 -1 -1
  0 0 0 0 0 0 0
  1 1 1 1 1 1 1
  2 2 2 2 2 2 2

附注:例题中meshgrid(-3:1:3,-2:1:2);因为-3:1:3产生的是含有7个数字的行向量;-2:1:2产生的是含有5个数字的行向量。所以该命令的结果是产生57的矩阵(X,Y都是57的矩阵;其中X是由第一个含7个元素的行向量产生,Y是由第二个行向量产生)

N开头

O开头

P开头

- polyfit函数

在MATLAB中polyfit函数是用来进行多项式拟合的。其数学原理是基于最小二乘法进行拟合的。具体使用语法是:
p=polyfit(x,y,n);
[p,s]=polyfit(x,y,n);
其中x、y为拟合坐标点,n为拟合次数;返回值p表示多项式拟合的系数,系数从高到低排序。
矩阵s用于生成预测值的误差估计。

- polyval函数

在MATLAB中polyval函数是多项式计算求值函数。调用格式:
y=polyval(p,x);
[y,DELTA]=polyval(p,x,s)
y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。
[y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。

Q开头

R开头

- round函数

调用格式:Y = round(X)
在MATLAB中round用于取四舍五入

- regionprops函数

调用格式:STATS = regionprops(L,properties)
该函数用来测量标注矩阵L中每一个标注区域的一系列属性。
L中不同的正整数元素对应不同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此类推。
返回值STATS是一个 长度为max(L(:))的结构数组,结构数组的相应域定义了每一个区域相应属性下的度量。
Properties可以是由逗号分割的字符串列表、包含字符 串的单元数组、单个字符串’all’或者’basic’。如果properties等于字符串’all’,则表4.1中的度量数据都将被计算;如果properties等于字符串’basic’,则属性:‘Area’,'Centroid’和’BoundingBox’将被计算。表1就是所有有效的属性字符串。

表1 属性字符串列表----度量图像区域的属性或功能
‘Area’ 图像各个区域中像素总个数
‘BoundingBox’ 包含相应区域的最小矩形
‘Centroid’ 每个区域的质心(重心)
‘MajorAxisLength’ 与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)
‘MinorAxisLength’ 与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)
‘Eccentricity’ 与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)
‘Orientation’ 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)
‘Image’ 与某区域具有相同大小的逻辑矩阵
‘FilledImage’ 与某区域具有相同大小的填充逻辑矩阵
‘FilledArea’ 填充区域图像中的on像素个数
‘ConvexHull’ 包含某区域的最小凸多边形
‘ConvexImage’ 画出上述区域最小凸多边形
‘ConvexArea’ 填充区域凸多边形图像中的on像素个数
‘EulerNumber’ 几何拓扑中的一个拓扑不变量——欧拉数
‘Extrema’ 八方向区域极值点
‘EquivDiameter’ 与区域具有相同面积的圆的直径
‘Solidity’ 同时在区域和其最小凸多边形中的像素比例
‘Extent’ 同时在区域和其最小边界矩形中的像素比例
‘PixelIdxList’ 存储区域像素的索引下标
‘PixelList’ 存储上述索引对应的像素坐标
L =

 1     1     1     0     2     2     0
 1     1     1     0     2     2     0
 1     1     1     0     0     0     3
 1     1     1     0     0     0     3
 0     0     0     0     0     3     3

STATS=regionprops(L,‘Area’)

STATS =

包含以下字段的 3×1 struct 数组:

Area

在这里插入图片描述

- repmat函数

B = repmat(A, m, n) %将矩阵A复制mn块,即B由mn块A平铺而成

B = repmat(A, [mn])%与上面一致

B = repmat(A, [mn p…]) %B由mnp*…个A块平铺而成

repmat(A, m, n)%当A是一个数a时,该命令产生一个全由a组成的m*n矩阵

- rgb2gray函数

rgb2gray函数用于将彩色图像转化为灰度图像
调用格式:image=rgb2gray(RGB);

对于彩色图像:
RGB(: ,: ,1) 表示红色分量
RGB(: ,: ,2) 表示绿色分量
RGB(: ,: ,3) 表示蓝色分量

- reshape函数

调用格式: A = reshape(A,m,n)或 A = reshape(A,[m,n])

该函数用于将矩阵A的格式重新排列,组成m*n的矩阵,重新排列是按索引序号进行排列。

S开头

- sub2ind函数

sub2ind函数将矩阵中指定元素的行列下标转换成存储的序号,即线性索引号。
调用格式:
linearInd = sub2ind(matrixSize, rowSub, colSub)
linearInd = sub2ind(matrixSize, rowSub, colSub) 为大小是 matrixSize 的矩阵返回与行和列下标 rowSub 和 colSub 等效的线性索引。
例如:b=sub2ind(size(A),[1 2 3],[2 3 4])
其输出结果就为A矩阵中(1,2)、(2,3)、(3,4)的索引号,MATLAB的矩阵是按计算的,索引号就为案列数下来其对应位置的序号。
v=A(sub2ind(size(A),[1 2 3],[2 3 4]))
这个式子则是输出(1,2)、(2,3)、(3,4)位置的值。

- setdiff函数

调用格式:
C=setdiff(A,B) ;
[C,IA] = setdiff(A,B);
对于第一个调用格式, C=setdiff(A,B)函数表示返回在A向量中却不在B向量中的元素,并且C中不包含重复元素,并且从小到大排序;
对于第二个调用格式,所返回的C与上述相同,IA是C中元素在向量A中的下标(索引)。如果A中存在重复元素,并且该元素不在B中,就返回重复元素第一次出现的下标。

- sort函数

该函数用于对数组元素进行排序

B=sort(A):对一维或二维矩阵进行升序排序,并返回排序后的矩阵;当A为二维矩阵时,对矩阵的每一列分别进行排序。B为排序后的矩阵。

B=sort(A,dim):对矩阵按指定的方向进行升序排序,并返回排序后的矩阵。当dim=1时,对矩阵的每一列排序(即将第一维行数打乱重排);当dim=2时,对矩阵的每一行排序(即将第二维列数打乱重排)。

B=sort(A,dim,mode):mode为’ascend’时,进行升序排序;mode为’descend’时,进行降序排序。相比于sort(A)可见默认升序,默认dim=1。当dim=1时式子中也可以省略不写,即sort(A,mode)。

[B,IX]=sort(A,…):IX为排序后备元素在原矩阵中的行位置或列位置的索引,为与A同样大小的标量矩阵,且每行(dim=2)或每列(dim=1)遍布1:行数m,或遍布1:列数n

- strel函数

strel——structuring element

运用各种形状和大小构造元素,创建由指定形状shape对应的结构元素。用于膨胀腐蚀及开闭运算等操作的结构元素对象。

基本语法为SE = strel(shape, parameters)
shape 是指定希望形状的字符串,其中shape的种类有

‘arbitrary’

‘pair’

‘diamond’

‘periodicline’

‘disk’

‘rectangle’

‘line’

‘square’

‘octagon’

参数parameters是指定形状信息的一系列参数,一般控制SE的大小。
例子:

se1 = strel(‘square’,6) % 创建6*6的正方形

SE = strel(‘line’, LEN, DEG) 创建一个平坦的线型结构,LEN长度,DEG角度

se2 = strel(‘line’,10,45) % 创建直线长度10,角度45

SE = strel(‘disk’, R, N)

创建一个指定半径R的平面圆盘形的结构元素。这里R必须是非负整数. N须是0, 4, 6, 8.当N大于0时,圆盘形结构元素由一组N(或N+2)个周期线型( periodic-line )结构元素来近似。当N等于0时,不使用近似,即结构元素的所有像素是由到中心像素距离小于等于R的像素组成。N可以被忽略,此时缺省值是4。

注: 形态学操作在N>0情况下要快于N=0的情形。

se3 = strel(‘disk’,15) % 创建圆盘半径15

SE = STREL(‘ball’,R,H,N) 创建一个空间椭球状的结构元素,其X-Y平面半径为R,高度为H。R必须为非负整数,H是一个实数。N必须为一个非负偶数,当N>0时此球形结构元素由一系列空间线段结构元素来近似;当N=0时不需要近似,结构化元素的成员由所有中心距圆点>R的元素组成,相应的高度值可由R/H指定的椭球中提取。如果N未指定,缺省值8,并且。注: 使用球体近似的形态学操作N>0的情况要比N=0的情况快许多。

se4 = strel(‘ball’,15,5)

% 创建椭圆体,半径15,高度5
SE = strel(‘octagon’, R) 创建一个平坦的八边形结构元素,R是从结构元素原点到八边形边的距离,沿水平轴和垂直轴的度量,R必须是3的非负倍数

SE = strel(‘pair’, OFFSET) 创建一个包含两个成员的平坦结构元素,一个成员在原点,另一个成员由向量OFFSET表示,该向量必须是一个两元素的整数向量

SE = strel(‘diamond’, R)
创建一个指定大小R平面钻石形状的结构化元素。R是从结构化元素原点到其点的距离,必须为非负整数。

SE = strel(‘periodicline’, P, V) 创建一个包含有2P+1个成员的平坦元素,其中V是一个两元素向量,它包含有整数值的行和列的偏移,一个元素在原点,另一个位于 1V, -1V, 2V, -2V, …, PV, -P*V.

SE = strel(‘rectangle’, MN) 创建一个平坦的矩形结构,MN指定大小 SE = strel(‘square’, W) 创建一个方形的结构元素,边长为N个像素

- sign函数

该函数用于判定输出值的正负性

sign(正数)

当sign()函数的参数是正数时,返回的值是1

sign(负数)

当传递的参数为负数的时候,返回的值是-1

sign(0)

当传递的参数为0的时候,返回值为0

- std2函数

调用格式:a=std2(A);
该函数用于计算矩阵或数组A的标准差;其计算公式分母为N-1而非N

T开头

U开头

- unique函数

调用格式:A=unique(B);

该函数经常用于去重,对于B中的所有的元素都只取一次,返回的A是B中每个不同的元素,并按升序排列。

V开头

W开头

X开头

Y开头

Z开头

- zeros函数

调用格式:zeros(m,n) 生成m行n列的零矩阵

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值