%提取ROI
mouse=imrect;
pos=getPosition(mouse);%用鼠标画一个矩形,返回矩形左上角x坐标、左上角y坐标、矩形宽度w、矩形高度h
ROI=[pos(1) pos(2) pos(3) pos(4)];
J = imcrop(I,ROI);
1、 matlab函数bwareaopen──删除小面积对象
格式:BW2 = bwareaopen(BW,P,conn)
作用:删除二值图像BW中面积小于P的对象,conn为4或8,默认情况下使用8邻域。
算法:
(1)Determine the connected components.
L = bwlabeln(BW, conn);
(2)Compute the area of each component.
S = regionprops(L, 'Area');
(3)Remove small objects.
bw2 = ismember(L, find([S.Area] >= P));
2、matlab函数bwarea──计算对象面积
格式:total = bwarea(BW)
作用:估计二值图像中对象的面积。
注:该面积和二值图像中对象的像素数目不一定相等。
3、matlab函数bwboundaries──获取对象轮廓
格式:B = bwboundaries(BW,conn)(基本格式)
作用:获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。B是一个P×1的cell数组,P为对象个数,每个cell 是Q×2的矩阵,对应于对象轮廓像素的坐标(i,j)即多少行多少列。
4、matlab函数imregionalmin──获取极小值区域
格式:BW = imregionalmin(I,conn)
作用:寻找图像I的极小值区域(regional maxima),默认情况conn=8。
5、matlab函数bwulterode──距离变换的极大值
格式:BW2 = bwulterode(BW,method,conn)
作用:终极腐蚀。寻找二值图像BW的距离变换图的区域极大值(regional maxima)。用于距离变换的距离默认为euclidean,连通性为8邻域。
6、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轴的交角(度)
'FilledArea':填充区域图像中的on像素个数
'ConvexHull':包含某区域的最小凸多边形
'ConvexImage':画出上述区域最小凸多边形
'ConvexArea':填充区域凸多边形图像中的on像素个数
'EquivDiameter':与区域具有相同面积的圆的直径
'Solidity':同时在区域和其最小凸多边形中的像素比例
'Extent':同时在区域和其最小边界矩形中的像素比例
'PixelIdxList':存储区域像素的索引下标
'PixelList':存储上述索引对应的像素坐标
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删