www.gusucode.com > matlab程序语言实现的水准网平差程序,使用于测绘人员 > 一种基于极大值稳定区域的文本定位方法matlab源码程序/毕业设计/代码/conComp_filter.m
function [mserStats,mserRegions] =conComp_filter(mserConComp,mserRegions,grayImage) % 利用regionprops获取MSER区域相关参数存入结构体mserStats mserStats = regionprops(mserConComp, 'BoundingBox','Eccentricity', 'Solidity', 'Extent', 'Euler', 'Image','Centroid'); %'BoundingBox' 包含相应区域的最小矩形 %'Eccentricity' 与区域具有相同标准二阶中心矩的椭圆的离心率 %'Solidity' 同时在区域和其最小凸多边形中的像素比例 %'Extent' 同时在区域和其最小边界矩形中的像素比例 %'EulerNumber' 几何拓扑中的一个拓扑不变量——欧拉数 %'Image' 与某区域具有相同大小的逻辑矩阵 % %画框 % broder=[mserStats.BoundingBox]; % figure % imshow(grayImage) % hold on; % for i=1:mserRegions.Count % leftx=broder((i-1)*4+1); % lefty=broder((i-1)*4+2); % width=broder((i-1)*4+3); % height=broder((i-1)*4+4); % % rectangle('Position',[leftx,lefty,width,height], 'EdgeColor','g'); % end % hold off; %计算宽高比 bbox = vertcat(mserStats.BoundingBox); w = bbox(:,3); h = bbox(:,4); aspectRatio = w./h; % 基本特征过滤 filterIdx = aspectRatio'>10; filterIdx = filterIdx | aspectRatio'<0.4; filterIdx = filterIdx | [mserStats.Eccentricity] > .997 filterIdx = filterIdx | [mserStats.Solidity] < .13; % filterIdx = filterIdx | [mserStats.Extent] < 0.08 | [mserStats.Extent] > 0.8; filterIdx = filterIdx | [mserStats.EulerNumber] < -5; mserStats(filterIdx) = []; mserRegions(filterIdx) = []; % %画框 % broder=[mserStats.BoundingBox]; % figure % imshow(grayImage) % hold on; % for i=1:mserRegions.Count % leftx=broder((i-1)*4+1); % lefty=broder((i-1)*4+2); % width=broder((i-1)*4+3); % height=broder((i-1)*4+4); % % rectangle('Position',[leftx,lefty,width,height], 'EdgeColor','g'); % end % hold off; %