旋转不变LBP的36种模式

近日接触到旋转不变LBP,刚开始以为有256种模式,但是慢慢发现并没有这么多种模式,比如10000000(128)和00000010(2)他们的旋转不变LBP模式都是一样的,最后都为00000001(1),因此我在这里讨论一下旋转不变LBP一共有多少种模式。

用Python实现一下旋转不变LBP的种类,代码思路如下

1、把0-255这256个数字依次移位计算最小值

2、建立一个数组用来存放数字,如果这个数字不在数组中,就加入数组,如果在数组中,就pass掉。同时创建一个计数器,用来计算一共有多少种模式。

程序如下:

import numpy as np

def circular_shift_left (a):
    bit = '{:08b}'.format(a)
    c = []
    for i in range(8):
        bin_value = bit[i:] + bit[:i]
        int_value = int(bin_value,2)
        c.append(int_value)
    return np.min(c)

if __name__=='__main__':
    count = 0 #计数
    mode= [] # 模式
    for i in range(256):
        a = circular_shift_left(i)
        if a in mode:
            pass
        else:
            mode.append(a)
            count+=1 #
print(mode,count)

运行结果为: 

[0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 37, 39, 43, 45, 47, 51, 53, 55, 59, 61, 63, 85, 87, 91, 95, 111, 119, 127, 255] 36

可以发现,结果并不是256维的,而是36维的,也就是说旋转不变LBP一共有36种模式。 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值