matlab 一些图像处理函数.docx
《matlab 一些图像处理函数.docx》由会员分享,可在线阅读,更多相关《matlab 一些图像处理函数.docx(11页珍藏版)》请在冰豆网上搜索。
matlab一些图像处理函数
一、MATLAB的size函数:
获取数组的行数和列数
(1)s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。
(2)[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。
(3)如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。
其中r=size(A,1)该语句返回的时数组A的行数,c=size(A,2)该语句返回的时数组A的列数。
原文地址:
MATLAB常用形态学操作函数作者:
ggbondgt
常用形态学操作函数
1、dilate函数
该函数能够实现二值图像的膨胀操作,有以下形式:
BW2=dilate(BW1,SE)
BW2=dilate(BW1,SE,…,n)
其中:
BW2=dilate(BW1,SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行膨胀操作。
输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8。
BW2=dilate(BW1,SE,…,n)表示执行膨胀操作n次。
2、erode函数
该函数能够实现二值图像的腐蚀操作,有以下形式:
BW2=erode(BW1,SE)
BW2=erode(BW1,SE,…,n)
其中:
BW2=erode(BW1,SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行腐蚀操作。
输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8。
BW2=erode(BW1,SE,…,n)表示执行腐蚀操作n次。
3、bwmorph函数
该函数的功能是能实现二值图像形态学运算。
它的格式如下:
①BW2=bwmorph(BW1,operation)
②BW2=bwmorph(BW1,operation,n)
其中:
对于格式①,bwmorph函数可对二值图像BW1采用指定的形态学运算;对于格式②,bwmorph函数可对二值图像BW1采用指定的形态学运算n次。
operation为下列字符串之一:
‘clean’:
除去孤立的像素(被0包围的1)
‘close’:
计算二值闭合
‘dilate’:
用结构元素计算图像膨胀
‘erode’:
用结构元素计算图像侵蚀
4、imclose函数
该函数功能是对灰度图像执行形态学闭运算,即使用同样的结构元素先对图像进行膨胀操作后进行腐蚀操作。
调用格式为:
IM2=imclose(IM,SE)
IM2=imclose(IM,NHOOD)
5、imopen函数
该函数功能是对灰度图像执行形态学开运算,即使用同样的结构元素先对图像进行腐蚀操作后进行膨胀操作。
调用格式为:
IM2=imopen(IM,SE)
IM2=imopen(IM,NHOOD)
Matlab中函数strel在操作结构元素应用,用于膨胀腐蚀及开闭运算等操作的结构元素对象
具体用法:
SE=strel(shape,parameters)
创建由指定形状shape对应的结构元素。
其中shape的种类有
arbitrary'
'pair'
'diamond'
'periodicline'
'disk'
'rectangle'
'line'
'square'
'octagon’
参数parameters一般控制SE的大小。
例子:
se1=strel('square',6)
%创建6*6的正方形
se2=strel('line',10,45)
%创建直线长度10,角度45
se3=strel('disk',15)
%创建圆盘半径15
se4=strel('ball',15,5)
%创建椭圆体,半径15,高度5
最终编辑hyb841729963
STREL创建形态学结构元素。
语法:
SE=STREL('arbitrary',NHOOD)创建一个指定领域的平面结构化元素。
NHOOD是一个包含1/0的矩阵;1的位置定义了领域的形态学操作。
NHOOD的中心就是它的中心元素,位置在FLOOR((SIZE(NHOOD)+1)/2)。
你也可以忽略参数串'arbitrary'而只使用STREL(NHOOD).
SE=STREL('arbitrary',NHOOD,HEIGHT)创建一个指定领域的非平面结构化元素。
HEIGHT是一个矩阵,大小和NHOOD相同,他指定了NHOOD中任何非零元素的高度值。
HEIGHT必须是实有限值。
你也可以忽略参数串'arbitrary'而只使用STREL(NHOOD,HEIGHT).
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的情况快许多。
SE=STREL('diamond',R)创建一个指定大小R平面钻石形状的结构化元素。
R是从结构化元素原点到其点的距离,必须为非负整数。
SE=STREL('disk',R,N)创建一个指定半径R的平面圆盘形的结构元素。
这里R必须是非负整数.N须是0,4,6,8.当N大于0时,圆盘形结构元素由一组N(或N+2)个周期线结构元素来近似。
当N等于0时,不使用近似,即结构元素的所有像素是由到中心像素距离小于等于R的像素组成。
N可以被忽略,此时缺省值是4。
注:
形态学操作在N>0情况下要快于N=0的情形。
功能:
腐蚀图像
用法:
IM2=imerode(IM,SE)
腐蚀灰度、二进制或压缩二进制图像IM,返回腐蚀图像IM2。
参数SE是函数strel返回的一个结构元素体或是结构元素体阵列。
如果IM是逻辑图像,结构元素是平坦的,imerode执行二进制膨胀;否则执行灰度腐蚀。
如果SE是一个结构元素体阵列,imerode接连使用SE中的每个结构元素体对输入图像进行多重腐蚀。
IM2=imerode(IM,NHOOD)
腐蚀图像IM,这里的NHOOD是一个0和1组成的阵列,指明了结构元素邻域。
这等同于imerode(IM,strel(NHOOD))的句法规则。
函数imerode通过floor((size(NHOOD)+1)/2)确定了邻域的中心元素。
IM2=imerode(...,PACKOPT,M)
指定IM是否为一幅压缩二进制图像,如果是,需要提供原始未压缩图像的行的维数M。
PACKOPT可以取以下值之一。
默认值由大括号({})标出。
Value(值)
Description(描述)
'ispacked'
IM可以作为一幅由bwpack产生的压缩二进制图像。
IM必须是一个2-D的uint32类型数组,SE必须是平坦的2-D结构元素。
{'notpacked'}
IM作为一个正常的数组对待。
如果PACKOPT是'ispacked',你必须为M指定一个值。
常用形态学操作函数
1、dilate函数
该函数能够实现二值图像的膨胀操作,有以下形式:
BW2=dilate(BW1,SE)
BW2=dilate(BW1,SE,…,n)
其中:
BW2=dilate(BW1,SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行膨胀操作。
输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8。
BW2=dilate(BW1,SE,…,n)表示执行膨胀操作n次。
2、erode函数
该函数能够实现二值图像的腐蚀操作,有以下形式:
BW2=erode(BW1,SE)
BW2=erode(BW1,SE,…,n)
其中:
BW2=erode(BW1,SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行腐蚀操作。
输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8。
BW2=erode(BW1,SE,…,n)表示执行腐蚀操作n次。
3、bwmorph函数
该函数的功能是能实现二值图像形态学运算。
它的格式如下:
①BW2=bwmorph(BW1,operation)
②BW2=bwmorph(BW1,operation,n)
其中:
对于格式①,bwmorph函数可对二值图像BW1采用指定的形态学运算;对于格式②,bwmorph函数可对二值图像BW1采用指定的形态学运算n次。
operation为下列字符串之一:
‘clean’:
除去孤立的像素(被0包围的1)
‘close’:
计算二值闭合
‘dilate’:
用结构元素计算图像膨胀
‘erode’:
用结构元素计算图像侵蚀
4、imclose函数
该函数功能是对灰度图像执行形态学闭运算,即使用同样的结构元素先对图像进行膨胀操作后进行腐蚀操作。
调用格式为:
IM2=imclose(IM,SE)
IM2=imclose(IM,NHOOD)
5、imopen函数
该函数功能是对灰度图像执行形态学开运算,即使用同样的结构元素先对图像进行腐蚀操作后进行膨胀操作。
调用格式为:
IM2=imopen(IM,SE)
IM2=imopen(IM,NHOOD)
matlab连通域处理函数们
分类:
数字图像、视频处理2011-08-0914:
35820人阅读评论(0)收藏举报
1、matlab函数bwareaopen──删除小面积对象
格式:
BW2=bwareaopen(BW,P,conn)
作用:
删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。
算法:
(1)Determinetheconnectedcomponents.
L=bwlabeln(BW,conn);
(2)Computetheareaofeachcomponent.
S=regionprops(L,'Area');
(3)Removesmallobjects.
bw2=ismember(L,find([S.Area]>=P));
2、matlab函数bwarea──计算对象面积
格式:
total=bwarea(BW)
作用:
估计二值图像中对象的面积。
注:
该面积和二值图像中对象的像素数目不一定相等。
3、matlab函数imclearborder──边界对象抑制
格式:
IM2=imclearborder(IM,conn)
作用:
抑制和图像边界相连的亮对象。
若IM是二值图,imclearborder将删除和图像边界相连的对象。
默认情况conn=8。
注:
Forgrayscaleimages,imclearbordertendstoreducetheoverallintensitylevelinadditiontosuppressingborderstructures.
算法:
(1)Maskimageistheinputimage.
(2)Markerimageiszeroeverywhereexceptalongtheborder,whereitequalsthemaskimage.
4、matlab函数bwboundaries──获取对象轮廓
格式:
B=bwboundaries(BW,conn)(基本格式)
作用:
获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。
B是一个P×1的cell数组,P为对象个数,每个cell是Q×2的矩阵,对应于对象轮廓像素的坐标。
5、matlab函数imregionalmin──获取极小值区域
格式:
BW=imregionalmin(I,conn)
作用:
寻找图像I的极小值区域(regionalmaxima),默认情况conn=8。
Regionalminimaareconnectedcomponentsofpixelswithaconstantintensityvalue,andwhoseexternalboundarypixelsallhaveahighervalue.
6、matlab函数bwulterode──距离变换的极大值
格式:
BW2=bwulterode(BW,method,conn)
作用:
终极腐蚀。
寻找二值图像BW的距离变换图的区域极大值(regionalmaxima)。
用于距离变换的距离默认为euclidean,连通性为8邻域。
7、regionprops统计被标记的区域的面积分布,显示区域总数。
函数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属性字符串列表
properties值
度量图像区域的属性或功能
'Area'
图像各个区域中像素总个数
'BoundingBox'
包含相应区域的最小矩形
'Centroid'
每个区域的质心(重心)
'MajorAxisLength'
与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)
'MinorAxisLength'
与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)
'Eccentricity'
与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)
'Orientation'
与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)
'Image'
与某区域具有相同大小的逻辑矩阵
'FilledImage'
与某区域具有相同大小的填充逻辑矩阵
'FilledArea'
填充区域图像中的on像素个数
'ConvexHull'
包含某区域的最小凸多边形
'ConvexImage'
画出上述区域最小凸多边形
'ConvexArea'
填充区域凸多边形图像中的on像素个数
'EulerNumber'
几何拓扑中的一个拓扑不变量——欧拉数
'Extrema'
八方向区域极值点
'EquivDiameter'
与区域具有相同面积的圆的直径
'Solidity'
同时在区域和其最小凸多边形中的像素比例
'Extent'
同时在区域和其最小边界矩形中的像素比例
'PixelIdxList'
存储区域像素的索引下标
'PixelList'
存储上述索引对应的像素坐标