LBP 理论

LBP(Local Binary Patterns):局部二进制模式,用来描述图像局部纹理特征的算子。

LBP提取特征的步骤:

step1.将图片划分成为很多个cell

step2.计算每一个cell中的每一个像素点的LBP值

step3.计算每一个cell的直方图,也就是cell中每个LBP值出现的频率,然后将直方图进行归一化处理

step4.将每一个cell的直方图连起来成为一个特征向量,也就该图片的LBP纹理特征向量。

1.原始LBP

LBP 理论_第1张图片LBP 理论_第2张图片

一个元素的LBP值,与其周围的8个元素有关,大于等于中心元素的灰度,就置为1,小于置为0,然后将得到的这8位二进制数字按照图2的方向进行连接然后再将其转化为10进制进而得到了该元素的LBP值。

H(x,y)表示像素点(x,y)的灰度值

LBP(x_{c},y_{c})=\sum_{p=1}^{8}I[H(x_{p},y_{p})-H(x_{c},y_{c})]\times 2^{p-1},其中I(x)=\left\{\begin{matrix} 1, x>=0\\ 0,x<0 \end{matrix}\right.下面简写为H(c),H(p)

2.圆形LBP

LBP 理论_第3张图片

以该元素为中心,R为半径画一个圆,然后在圆形边界上等距离的取P个点,然后通过阈值的方式得到一串0\1二进制串,顺序按照图中给出的方向。

\left\{\begin{matrix} x_{p}=x_{c}+Rcos(2\pi \times \frac{p}{P})\\ y_{p}=y_{c}-Rsin(2\pi \times \frac{ p}{P}) \end{matrix}\right.

LBP_{P,R}(x_{c},y_{c})=\sum_{p=1}^{P}I[H(p)-H(c)]\times 2^{p-1}

3.旋转不变LBP

取完等距的P个点之后,分别以i=0,1,2,...,P-1为起点去得到该点不同的LBP值,然后从中取出值最小的那个最为该点的最终LBP值。

LBP_{P,R}^{rot}=min\begin{Bmatrix} LBP_{P,R,i}|i=0,1,2,...P-1 \end{Bmatrix}

def Rot()
    # value_list用来存储着8个数字
    value_list = np.zeros((8), np.uint8)
    temp = int(num)
    value_list[0] = temp # 存储原始数字num
    for i in range(7):
        temp = ((temp << 1) | (temp / 128)) % 256 # 数字num左移一位末尾补上前面丢掉的那一位,然后取模最大值
        value_list[i+1] = temp
    return np.min(value_list) # 返回最小的

4.均匀模式LBP

定义:0\rightarrow 11\rightarrow 0记为一次跳变。

那么均匀模式LBP就是说对于LBP值的二进制模式中跳变次数小于等于2的分别作为一个单独的一类,大于2的所有LBP值作为一类。比如说一共有P类,那么跳变次数小于等于2的种类有2\times C_{P}^{2}+2,(将P长度的二进制串收尾相连,那么从中选出任意两个,都是两次跳跃,还有就是全0,全1,没有跳变),因此类别由原先的2^{P}降低到了P(P-1)+2

ULBP_{P,R}=|I[H(P-1)-H(c)]-I[H(0)-H(c)]|+\sum_{p=1}^{P-1}|I[H(p)-H(c)]-I[H(p-1)-H(c)]|

# 采用预处理的方式,提取出2^P以内的所有跳变次数小于等于2的数字
table = np.zeros((256), dtype=np.int8)
tmp = 1
for i in range(256):
    if getHopCut(i) <= 2:
        table[i] = tmp
        tmp += 1

5.均匀模式&旋转不变模式融合起来的LBP

先计算跳变次数得到分类

ULBP_{P,R}=|I[H(P-1)-H(c)]-I[H(0)-H(c)]|+\sum_{p=1}^{P-1}|I[H(p)-H(c)]-I[H(p-1)-H(c)]|

再进行旋转选出不同起点的LBP值中最小的那个LBP值作为该像素点的最终的LBP值

LBP_{P,R}^{rot}=min\begin{Bmatrix} LBP_{P,R,i}|i=0,1,2,...P-1 \end{Bmatrix}

 

你可能感兴趣的:(Deep,Learning)