Matlab中图像处理常用函数的用法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab中常见函数的用法

1 size()函数

1)s=size(A),

当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。

2)[r,c]=size(A),

当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。

3)size(A,n)

如果在size函数的输入参数中再添加一项n,并用1、2或者3为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。如果A为一个二维数组,则可以将其看成一个第三维为1的数组,即size(A,3)的返回值为1。

2 padarray()函数

B = padarray(A,padsize,padval,direction)

A为输入图像,B为填充后的图像,padsize给出了给出了填充的行数和列数,通常用[r c]来表示。padval和direction分别表示填充方法和方向。它们的具体值和描述如下:Padval选项:'symmetric'表示图像大小通过围绕边界进行镜像反射来扩展;

'replicate'表示图像大小通过复制外边界中的值来扩展;

'circular'图像大小通过将图像看成是一个二维周期函数的一个周期来进行

扩展。

Direction选项:'pre'表示在每一维的第一个元素前填充;

'post'表示在每一维的最后一个元素后填充;

'both'表示在每一维的第一个元素前和最后一个元素后填充,此项为默认

值。

若参量中不包括direction,则默认值为'both';若参量中不包含padval,则默认用0来填充。若参量中不包括任何参数,则默认填充为零且方向为'both'。在计算结束时,图像会被修剪成原始大小。

3 meshgrid()函数

meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的,它也可以是更高维的。该函数在使用matlab进行3-D图形的绘制方面有着广泛的应用。

[A,B]=Meshgrid(a,b),生成size(b)*size(a)大小的矩阵A和B。A矩阵相当于a从一行重复增加到size(b)行,B矩阵相当于把b转置成一列再重复增加到size(a)列。因此命令等效于A=ones(size(b))*a;B=b'*ones(size(a))

实例:a=[1:2];a =12;b=[3:5]; b =345;[A,B]=meshgrid(a,b)

A =

1 2

1 2

1 2 B =

3 3

4 4

5 5

4 find()函数

find函数用于找到非零元素的索引和值。

1)ind = find(X)

找出矩阵X中的所有非零元素,并将这些元素的线性索引值(linear indices:按列)返回到向量ind中。如果X是一个行向量,则ind是一个行向量;否则,ind是一个列向量。如果X不含非零元素或是一个空矩阵,则ind是一个空矩阵。

2)ind = find(X, k) 或ind = find(X, k, 'first')

返回从前边开始数,前k个非零元素的索引值,k必须是一个正数,但是它可以是任何数字数值类型。

3)ind = find(X, k, 'last')

返回从后边开始数,前k个非零元素的索引值,k必须是一个正数,但是它可以是任何数字数值类型。

4)[row, col] = find(X, ...)

返回矩阵X中非零元素的行和列的索引值。这个语法对于处理稀疏矩阵尤其有用。如果X是一个N(N>2)维矩阵,col包括列的线性索引。例如,一个5*7*3的矩阵X,有一个非零元素X(4,2,3),find函数将返回row=4和col=16。也就是说,(第1页有7列)+(第2页有7列)+(第3页有2列)=16。

5)[row, col, v] = find(X, ...)

返回X中非零元素的一个列或行向量v,同时返回行和列的索引值。如果X是一个逻辑表示,则v是一个逻辑矩阵。输出向量v包含通过评估X表示得到的逻辑矩阵的非零元素。

5 repmat()函数

B = repmat(A,m,n)

B = repmat(A,[m n])

B = repmat(A,[m n p...])

这是一个处理大矩阵且内容有重复时使用,其功能是将A的内容作为一个整体进行扩充,最终B矩阵包括m*n个A矩阵。B矩阵的大小由m*n及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B = repmat(A,2,3)则最后的矩阵是6x12x5

例如:

B=repmat([1 2;3 4],2,3)

B =

1 21 21 2

3 43 43 4

1 2 121 2

3 4 343 4

其结果变为4X6。

repmat函数中的矩阵A也可以是字符串,例如:

C=repmat(' Long live the king!', 2,2)

C =

Long live the king! Long live the king!

Long live the king! Long live the king!

也可置放其他的符号:

D=repmat(NaN,2,5)

D =

NaN NaN NaN NaN NaN

NaN NaN NaN NaN NaN

相关文档
最新文档