主要内容

extractLBPFeatures

提取局部二值模式(LBP)特征

描述

特性= extractLBPFeatures (返回从灰度图像中提取的均匀局部二值模式(LBP)。LBP特征编码局部纹理信息。

例子

特性= extractLBPFeatures (名称,值使用一个或多个指定的其他选项名称,值对参数。

例子

全部折叠

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

砖墙= imread(“bricks.jpg”);旋转的砖墙= imread(“bricksRotated.jpg”);地毯“carpet.jpg”);

显示图像。

图imshow(brickWall)标题(“砖头”

图中包含一个轴对象。标题为Bricks的axes对象包含一个image类型的对象。

图imshow(rotatedBrickWall)“旋转砖”

图中包含一个轴对象。标题为旋转式砖块的axis对象包含一个图像类型的对象。

图imshow(地毯)标题(“地毯”

图中包含一个轴对象。标题为Carpet的axis对象包含一个image类型的对象。

从图像中提取LBP特征,对其纹理信息进行编码。

lbpBricks1 = extractLBPFeatures(brickWall,“正直”、假);lbpBricks2 = extractLBPFeatures(rotatedBrickWall,“正直”、假);lbpCarpet = extractLBPFeatures(地毯,“正直”、假);

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

brickVsBrick = (lbpBricks1 - lbpBricks2).^2;brickVsCarpet = (lbpBricks1 - lbpCarpet).^2;

可视化平方误差来比较砖块和砖块以及砖块和地毯。当图像纹理相似时,平方误差较小。

图酒吧([brickVsBrick;brickVsCarpet)”,“分组”)标题(“LBP直方图的平方误差”)包含(“LBP直方图箱”)传说(“砖块vs旋转砖块”“砖块vs地毯”

图中包含一个轴对象。标题为Squared Error of LBP Histograms的axis对象包含2个类型为bar的对象。这些物体代表砖块vs旋转砖块,砖块vs地毯。

读入一个样本图像并将其转换为灰度。

I = imread(“gantrycrane.png”);I = im2gray(I);

提取未规范化的LBP特征,以便应用自定义规范化。

lbpFeatures = extractLBPFeatures(I,“CellSize”(32 32),“归一化”“没有”);

将LBP特征重塑为a邻居个数——- - - - - -单元格数量数组来访问每个单元格的直方图。

numNeighbors = 8;numBins = numNeighbors*(numNeighbors-1)+3;lbpCellHists =重塑(lbpFeatures,numBins,[]);

使用L1范数归一化每个LBP细胞直方图。

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

将LBP特征向量重新塑造为1 × -N特征向量。

lbpFeatures =重塑(lbpCellHists,1,[]);

输入参数

全部折叠

输入图像,指定为——- - - - - -N二维灰度图像是真实的,并且是非稀疏的。

数据类型:逻辑|||int16|uint8|uint16

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“NumNeighbors”8

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

用于计算输入图像中每个像素的LBP的邻居数量,指定为逗号分隔的对,由'NumNeighbors'和一个正整数。邻居的集合是从每个像素周围的圆形对称模式中选择的。增加邻居的数量,以编码每个像素周围的更多细节。典型值范围为424

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

旋转不变性标志,指定为逗号分隔的对,由'正直的和一个逻辑标量。当您将此属性设置为真正的时,LBP特征不编码旋转信息。设置”正直的当需要旋转不变特征时。

用于计算像素邻居的插值方法,指定为逗号分隔的对,由'插值“线性”“最近的”.使用“最近的”计算速度更快,但精确度较低。

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

单元格大小,指定为逗号分隔的对,由'CellSize'和一个2元向量。计算单元格数为地板上大小)/CellSize).

应用于每个LBP细胞直方图的归一化类型,指定为逗号分隔的对,由'归一化“外语”“没有”.若要应用自定义归一化方法作为后处理步骤,请将此值设置为“没有”

输出参数

全部折叠

LBP特征向量,返回为1 × -N长度向量N表示特征的数量。LBP特性编码局部纹理信息,您可以将其用于分类、检测和识别等任务。该函数将输入图像划分为不重叠的单元格。若要收集更大区域的信息,请选择更大的单元格大小。然而,当您增加单元格大小时,您将失去局部细节。N,取决于图像中细胞的数量,numCells,邻居数,P,以及正直的参数。

计算单元格数为:

numCells= prod (地板上大小)/CellSize))

该图显示了一个包含9个单元直方图的图像。每个直方图描述了一个LBP特征。

每个单元格的直方图大小为[1,B),B是柱状图中箱子的数量。箱子的数量取决于正直的属性和邻居的数量,P

正直的 箱数
真正的 (P (x)P-1) + 3)
P+ 2)

总体LBP特征长度,N,取决于单元格的数量和箱的数量,B

NnumCellsxB

参考文献

[1]奥哈拉,T., M. Pietikainen和T. Maenpaa。基于局部二值模式的多分辨率灰度和旋转不变纹理分类。模式分析与机器智能汇刊.第24卷,第7期,2002年7月,971-987页。

扩展功能

版本历史

在R2015b中引入