【转载自 https://www.cnblogs.com/enigma19971/p/7260510.html】

import cv2
import numpy as np


def olbp(src):
    dst = np.zeros(src.shape,dtype=src.dtype)
    for i in range(1,src.shape[0]-1):
        for j in range(1,src.shape[1]-1):
            pass
            center = src[i][j]
            code = 0;  
            code |= (src[i-1][j-1] >= center) << 7;  
            code |= (src[i-1][j  ] >= center) << 6;  
            code |= (src[i-1][j+1] >= center) << 5;  
            code |= (src[i  ][j+1] >= center) << 4;  
            code |= (src[i+1][j+1] >= center) << 3;  
            code |= (src[i+1][j  ] >= center) << 2;  
            code |= (src[i+1][j-1] >= center) << 1;  
            code |= (src[i  ][j-1] >= center) << 0;  
  
            dst[i-1][j-1]= code;  
    return dst


lena = cv2.imread('d:/lena.jpg')
cv2.namedWindow('lena')
cv2.imshow('lena', lena)
cv2.waitKey(0)

gray = cv2.cvtColor(lena,cv2.COLOR_RGB2GRAY)
x = olbp(gray)

cv2.namedWindow('olbp')
cv2.imshow('olbp', x)
cv2.waitKey(0)

 

posted on 2019-03-19 19:12  清风eq  阅读(924)  评论(0编辑  收藏  举报