1.介绍
局部二进制算法是一种用于获取图像纹理的算法。这算法可以应用于人脸识别、纹理分类、工业检测、遥感图像分析、动态纹理识别等领域。
2.示例
"""
局部二进制算法,计算图像纹理特征
"""
import cv2
import numpy as np
import matplotlib.pyplot as plt
# Load an image
image = cv2.imread('../Lena.png', cv2.IMREAD_GRAYSCALE)# Define the LBP function
def local_binary_pattern(image, P, R):# Compute LBP imagelbp = np.zeros_like(image, dtype=np.uint8)for i in range(R, image.shape[0] - R):for j in range(R, image.shape[1] - R):center = image[i, j]values = []for p in range(P):x = int(round(i + R * np.cos(2 * np.pi * p / P)))y = int(round(j - R * np.sin(2 * np.pi * p / P)))values.append(1 if image[x, y] >= center else 0)lbp[i, j] = sum([v * (2**p) for p, v in enumerate(values)])return lbp# Set the number of points and radius for LBP
num_points = 8
radius = 1# Compute LBP image
lbp_image = local_binary_pattern(image, num_points, radius)# Display the original and LBP images
plt.figure(figsize=(8, 4))plt.subplot(1, 2, 1)
plt.imshow(image, cmap='gray')
plt.title('Original Image')plt.subplot(1, 2, 2)
plt.imshow(lbp_image, cmap='gray')
plt.title('LBP Image')plt.show()