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個