均值局部二值化,提取相关维度

import cv2
import numpy as np

def mean_local_binary_pattern(image, radius, n_points):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
lbp = np.zeros_like(gray)
for i in range(radius,gray.shape[0]-radius):
for j in range(radius,gray.shape[1]-radius):
center = gray[i,j]
values = []
for r in range(-radius,radius+1):
for c in range(-radius,radius+1):
if r0 and c0:
continue
px = gray[i+r, j+c]
values.append(1 if px>=center else 0)
lbp[i,j] = int(sum(values)/len(values)*(n_points-1))
hist, _ = np.histogram(lbp.ravel(), bins=np.arange(n_points+1), range=(0,n_points))
return hist.astype(“float”)

image = cv2.imread(‘all_souls_000000.jpg’)
feature_vector = mean_local_binary_pattern(image, radius=3, n_points=59)
print(feature_vector)

你可能感兴趣的:(均值算法,python,算法)