主要内容

extractLBPFeatures

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

描述

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

例子

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

例子

全部折叠

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

brickwall = imread('bricks.jpg');rotatedbrickwall = imread(“bricksRotated.jpg”);地毯= imread (“carpet.jpg”);

显示图像。

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

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

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

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

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

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

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

lbpBricks1 = extractLBPFeatures (brickWall,'直立'、假);lbpBricks2 = extractLBPFeatures (rotatedBrickWall,'直立'、假);lbpCarpet = extractLBPFeatures(地毯、'直立'、假);

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

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

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

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

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

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

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

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

lbpfeatures = extractlbpfeatures(我,'细胞化'(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,…,的家

例子:“NumNeighbors”8.

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

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

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

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

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

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

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

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

输出参数

全部折叠

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

计算单元格数量为:

numcells.= prod (地板上尺寸一世)/CellSize))

该图显示了具有九个细胞直方图的图像。每个直方图描述了一个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卷第7期,2002年7月,第971-987页。

扩展能力

介绍了R2015b