主要内容

提取物摘录

提取本地二进制模式(LBP)功能

描述

特征= extractlbpfeatures(一世从灰度图像返回提取的均匀局部二进制模式(LBP)。LBP功能编码本地纹理信息。

例子

特征= extractlbpfeatures(一世名称,价值使用一个或多个指定的其他选项名称,价值对论点。

例子

全部收缩

读取包含不同纹理的图像。

brickwall = imread('bricks.jpg');rotatedbrickwall = imread('bricksrotated.jpg');地毯= imread('Carpet.jpg');

显示图像。

数字imshow(brickwall)标题('砖块'

图包含轴。带有标题砖的轴包含类型图像的对象。

图imshow(旋转壁)标题('旋转砖'

图包含轴。带标题旋转砖的轴包含类型图像的对象。

图imshow(地毯)标题('地毯'

图包含轴。带有标题地毯的轴包含类型图像的对象。

从图像中提取LBP功能以对其纹理信息进行编码。

lbpbricks1 = extractlbpfeatures(砖墙,'直立',错误的);lbpbricks2 = extractlbpfeatures(RotatedBrickWall,'直立',错误的);lbpcarpet = extractlbpfeatures(地毯,'直立',错误的);

通过计算它们之间的平方误差来衡量LBP功能之间的相似性。

Brickvsbrick =(lbpbricks1  -  lbpbricks2)。^ 2;Brickvscarpet =(lbpbricks1  -  lbpcarpet)。^ 2;

可视化平方误差以比较砖与砖和砖与地毯。当图像具有相似的纹理时,平方误差较小。

图栏([Brickvsbrick; Brickvscarpet]','分组') 标题(“LBP直方图的平方误差”)xlabel('LBP直方图垃圾箱') 传奇('砖vs旋转砖''砖vs carpet'

图包含轴。LBP直方图的标题平方误差的轴包含2个类型栏的2个对象。这些物体代表砖瓦斯旋转砖,砖与地毯。

在示例图像中读取并将其转换为灰度。

我= imread('甘迪克莱恩普恩');我= im2gray(i);

提取Unnormalized LBP功能,以便您可以应用自定义归一化。

lbpfeatures = extractlbpfeatures(i,'细胞化',[32 32],'正常化''没有任何');

将LBP功能重塑成一个邻居数量-经过-细胞数量数组用于访问每个单独的单元格的直方图。

numneighbors = 8;numbins = numneighbors *(numneighbors-1)+3;lbpcellhists =重塑(lbpfeatures,numbins,[]);

使用L1标准归一化每个LBP小区直方图。

lbpcellhists = bsxfun(@ rdivide,lbpcellhists,sum(lbpcellhists));

将LBP具有向量返回1-BY-N特征向量。

lbpfeatures =重塑(lbpcellhists,1,[]);

输入参数

全部收缩

输入图像,指定为一个m-经过-N2-D灰度图像是真实的,而不是稀疏。

数据类型:逻辑|单身的|双倍的|int16|uint8.|uint16

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'numneighbors'8.

算法参数
LBP算法参数控制如何为输入图像中的每个像素计算局部二进制模式。

用于计算输入图像中的每个像素的LBP的邻居数量,指定为由“逗号分隔的对”numneighbors.'和一个积极的整数。从每个像素周围的圆对称模式中选择邻居组。增加邻居的数量以在每个像素周围编码更详细的细节。典型值范围从4.24.

圆形图案的半径用于为输入图像中的每个像素选择邻居,指定为由“逗号分隔的对”半径'和一个积极的整数。要在更大的空间尺度上捕获细节,增加半径。典型值范围从15.

旋转不变标志,指定为逗号分隔的配对组成直立'和一个逻辑标量。当您将此属性设置为时真的,LBP功能不编码旋转信息。放 '直立' 到错误的当需要旋转不变功能时。

用于计算像素邻居的插值方法,指定为由“逗号分隔的对”组成“插值'还有'线性'要么'最近'。采用'最近'为了更快的计算,但具有更低的准确性。

直方图参数
直方图参数确定如何在图像上聚合二进制模式的分布以产生输出特征。

细胞大小,指定为逗号分隔的配对组成细胞化'和一个2元素矢量。计算细胞数量为地面尺寸一世/细胞化)。

适用于每个LBP小区直方图的归一化类型,指定为由'逗号分隔的对正常化'还有'l2'要么'没有任何'。要将自定义归一化方法应用为后处理步骤,请将此值设置为'没有任何'

输出参数

全部收缩

LBP特征向量,返回为1-by-N长度矢量N代表功能的数量。LBP功能对本地纹理信息进行编码,您可以用于分类,检测和识别等任务。该函数将输入图像分区为非重叠单元格。要收集较大区域的信息,请选择更大的单元格尺寸。但是,当您增加单元格大小时,您会丢失本地细节。N,取决于图像中的单元格数量,numcells.,邻居的数量,P.,而且直立范围。

计算单元格数量为:

numcells.= prod(地面尺寸一世/细胞化)))

该图显示了具有九个细胞直方图的图像。每个直方图描述了一个LBP特征。

每个单元格中直方图的大小是[1,B.], 在哪里B.是直方图中的垃圾箱数。箱数取决于直立财产和邻居的数量,P.

直立 垃圾箱数量
真的 (p x.P.-1)+ 3)
错误的 P.+ 2)

整体LBP功能长度,N,取决于细胞的数量和垃圾箱的数量,B.

N=numcells.XB.

参考

[1] Ojala,T.,M. Pietikainen和T. Maenpaa。“具有本地二进制模式的多分辨率灰度和旋转不变纹理分类。”图案分析和机器智能的IEEE交易。卷。24,2002年7月7日,第971-987号。

扩展能力

在R2015B中介绍