【问题标题】:How to implement LBP uniform如何实现 LBP 统一
【发布时间】:2016-06-15 08:20:20
【问题描述】:

我是 OpenCV 的新手。我正在尝试做一个样本来提取面部特征。我正在阅读几篇论文,其中最推荐的一篇是 LBP。我了解如何使用 LBP 描述符,但我从中读取了一个变体。 LBP 统一我理解它是 LBP 原始的,但是一旦你有二进制序列(例如,你将特定像素与邻居比较,你有下一个结果 - > 11110001,我知道有 2 个转换,所以在这种情况下我们可以说它是统一,因为转换次数

我的问题是执行此过程后我必须在该像素中计算什么代码。我知道使用 LBP 原始我们有 256 个值,但是使用 LBP 统一 que 的这个变体将数量减少到 59 个 bin 值。所以我的问题是在测试每个像素中的转换次数是否为 2 之后我必须放置什么代码。

谢谢!希望我的解释正确。

【问题讨论】:

    标签: opencv descriptor lbph-algorithm


    【解决方案1】:
    here's a lookup-table for this, assuming 8 neighbours:
    
    
        static int uniform[256] =
        {  
            0,1,2,3,4,58,5,6,7,58,58,58,8,58,9,10,11,58,58,58,58,58,58,58,12,58,58,58,13,58,
            14,15,16,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,17,58,58,58,58,58,58,58,18,
            58,58,58,19,58,20,21,22,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,
            58,58,58,58,58,58,58,58,58,58,58,58,23,58,58,58,58,58,58,58,58,58,58,58,58,58,
            58,58,24,58,58,58,58,58,58,58,25,58,58,58,26,58,27,28,29,30,58,31,58,58,58,32,58,
            58,58,58,58,58,58,33,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,34,58,58,58,58,
            58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,
            58,35,36,37,58,38,58,58,58,39,58,58,58,58,58,58,58,40,58,58,58,58,58,58,58,58,58,
            58,58,58,58,58,58,41,42,43,58,44,58,58,58,45,58,58,58,58,58,58,58,46,47,48,58,49,
            58,58,58,50,51,52,58,53,54,55,56,57
        };
    

    使用这个,您只需将 8 位 lbp 值替换为 LUT 中的值:

        value = uniform[value];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 2014-01-02
      • 2017-11-15
      • 2015-11-13
      • 1970-01-01
      • 2015-05-31
      • 2011-03-28
      相关资源
      最近更新 更多