【小tips】regionprops函数的使用方法

在做车牌识别的案例时用到了这个函数,这里记录一下regionprops函数的使用方法,以及在车牌识别中的应用过程。

1.regionprops函数及属性

在matlab上输入help regionprops后得到的解释为:regionprops - Measure properties of image regions

This MATLAB function returns measurements for the set of properties specified by
properties for each 8-connected component (object) in the binary image, BW.

意思为:度量图像区域属性
调用方式为:
stats = regionprops(BW,properties)
stats = regionprops(CC,properties)
stats = regionprops(L,properties)
stats = regionprops(___,I,properties)
stats = regionprops(output,___)
stats = regionprops(gpuarrayImg,___)

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

我目前在做车牌识别时用到了’BoundingBox’ 属性,主要介绍一下:
BoundingBox形式为 [ul_corner width],ul_corner为区域左上角的坐标,width为沿着横纵维数方向的长度。

2.以车牌识别为例’BoundingBox’ 属性具体应用过程

【小tips】regionprops函数的使用方法
拍摄采集到的汽车图像img,经过灰度化处理,高斯模糊,边缘检测,二值化,形态学闭操作,开操作,膨胀操作之后,得到如下图bw:
【小tips】regionprops函数的使用方法
白色区域为车牌的候选区域,运用regionprops函数得到结果如下:

stats = regionprops(bw,'BoundingBox');

【小tips】regionprops函数的使用方法
每一行分别对应上面的一个白色待选区域,结合车牌的颜色,长宽比,面积等筛选出唯一的车牌区域,筛选出的区域记为index。

bb = stats(index).BoundingBox; 

得到的bb如下:
【小tips】regionprops函数的使用方法
即为上面stats的第四行,即第四行的为车牌区域的属性。第一个数为左上角的y坐标,第二个数为左上角的x坐标,第三个数为横向维数,第四个数为纵向维数。
【小tips】regionprops函数的使用方法
得到的I为车牌区域,结果如下:

I=img(floor(bb(2))+1:floor(bb(2)+bb(4)),floor(bb(1))+1:floor(bb(1)+bb(3)),:);

【小tips】regionprops函数的使用方法

上一篇:二、配置HAProxy负载平衡集群


下一篇:BLE理论基础:协议栈、角色分类