天天看點

Uniform LBP(均勻模式LBP)跳變小于等于2的數

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個 

繼續閱讀