Uniform LBP均匀LBP跳变小于等于2的数,用python实现,代码如下:
import numpy as np
l = np.zeros(58, dtype=int)
m = []
a = -1
for i in range(256):
bit = '{:08b}'.format(i) # 二进制化
arry = [] # 二进制生成数组
count = 0 # 计数变化次数
# 把字符串变为数组方便统计变化次数
for x in range(len(bit)):
arry.append(int(bit[x]))
#print(arry)
first = arry[0] # 数组第一个为first,与之后的比较
for j in range(1, len(arry)):
if arry[j] != first: # 如果变化,计数单位加1
count += 1
first = arry[j] # 并且把变化的值重新赋值
#print(count)
if count <= 2: # 如果变化次数大于3,则归为59位
a += 1
#print(i)
l[a] = i
print(l)
运行结果:
[ 0 1 2 3 4 6 7 8 12 14 15 16 24 28 30 31 32 48 56 60 62 63 64 96 112 120 124 126 127 128 129 131 135 143 159 191 192 193 195 199 207 223 224 225 227 231 239 240 241 243 247 248 249 251 252 253 254 255]
上面这些数就是跳变结果小于等于2的数,共有58个