主要内容

extractLBPFeatures

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

描述

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

例子

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

例子

全部折叠

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

brickWall = imread (“bricks.jpg”);rotatedBrickWall = imread (“bricksRotated.jpg”);地毯= imread (“carpet.jpg”);

显示图像。

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

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

图imshow (rotatedBrickWall)标题(“旋转砖”

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

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

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

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

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

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

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

想象一下砖块与砖块、砖块与地毯的平方误差。当图像纹理相似时,平方误差较小。

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

图中包含一个轴对象。标题为“LBP直方图的平方误差”的轴对象包含两个类型为bar的对象。这些对象代表砖块vs旋转砖块,砖块vs地毯。

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

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

提取未归一化的LBP特性,以便应用自定义归一化。

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

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

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

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

lbpCellHists = bsxfun (@rdivide lbpCellHists,总和(lbpCellHists));

将LBP特征向量重塑为1-by-N特征向量。

lbpFeatures =重塑(lbpCellHists 1 []);

输入参数

全部折叠

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

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

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“NumNeighbors”8

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

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

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

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

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

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

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

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

输出参数

全部折叠

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

单元格数计算如下:

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

图中显示了一个带有9个单元格直方图的图像。每个直方图描述一个LBP特征。

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

正直的 数量的垃圾箱
真正的 (P (x)P1) + 3)
P+ 2)

总的LBP特征长度,N,取决于细胞的数量和容器的数量,B

NnumCellsxB

参考文献

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

扩展功能

介绍了R2015b