Advertisement

图像处理特征篇-lbp特征

阅读量:

lbp特征

该方法用于描述图像局部纹理特征;该方法具有旋转和亮度独立性;该方法由T. Ojala、M.Pietikäinen和D.Harwood于1994年提出;该方法提取的特征反映了图像局部的纹理特性。

我们来探讨lpb特征的主要类型;在图像处理领域中提取lpb特征通常遵循这三大类型;我们将会逐一说明每种模式的具体应用。

一、等价模式(Uniform Pattern)

为了应对二进制模式数量过多所带来的挑战,并提升统计特性,Ojala等提出了将LBP算子的模式种类限制在特定范围内以实现降维的方法

这里的"samples""指的是邻域的数量

即能够有效地区分不同的图像类别

即能够有效地区分不同的图像类别

二、旋转不变模式

在邻域中存在m个点时(其中m=n),这些循环移位后的二进制数共有n位,并经过连续左移(n-1)次后会得到一个结果序列;随后对该结果序列中的所有元素进行比较并将其最小值赋存;接着为每个选出的最小值分配一个索引号,并从零开始计起

复制代码
    if strcmp(mappingtype,'ri') %Rotation invariant lbp的一种类型 旋转不变的
      tmpMap = zeros(2^samples,1) - 1;
      for i = 0:2^samples-1
    rm = i;
    r  = i;
    for j = 1:samples-1
      r = bitset(bitshift(r,1,samples),1,bitget(r,samples)); %rotate left
                                                             
      if r < rm
        rm = r;
      end
    end
    if tmpMap(rm+1) < 0
      tmpMap(rm+1) = newMax;%newMax初始值为0,newMax指的是number of patterns in the resulting LBP code
      newMax = newMax + 1;
    end
    table(i+1) = tmpMap(rm+1);%table为1*256向量  每种二进制的值经过循环左移后取最小值对应的index
      end
      
    end

三、等价模式&旋转不变模式

在两者的结合下(lbp特征的种类个数)等于samples + 2(其中samples代表邻域点的数量),这背后的原因是什么呢?如果想深入了解细节的话,请参考下方的代码示例。

复制代码
    if strcmp(mappingtype,'riu2') %Uniform & Rotation invariant
      newMax = samples + 2;
      for i = 0:2^samples - 1
    j = bitset(bitshift(i,1,samples),1,bitget(i,samples)); %rotate left
    numt = sum(bitget(bitxor(i,j),1:samples));
    if numt <= 2
      table(i+1) = sum(bitget(i,1:samples));%table为1*256向量 第一个元素代表0,依次下去 其中的值是类型的index这里面有10种
    else
      table(i+1) = samples+1;
    end
      end
    end

全部评论 (0)

还没有任何评论哟~