局部二值模式python
时间: 2023-10-10 08:16:07 浏览: 47
局部二值模式(Local Binary Patterns,LBP)是一种用于图像处理和分析的特征描述符。它可以对图像的纹理进行描述,适用于人脸识别、纹理识别等领域。
以下是一个简单的 Python 实现:
```python
import numpy as np
import cv2
def get_lbp_pixel(img, x, y):
center = img[x][y]
val = 0
power = 0
for i in range(x - 1, x + 2):
for j in range(y - 1, y + 2):
if i == x and j == y:
continue
if img[i][j] >= center:
val += 2 ** power
power += 1
return val
def lbp(img):
h, w = img.shape
lbp_img = np.zeros((h-2, w-2), np.uint8)
for i in range(1, h-1):
for j in range(1, w-1):
lbp_img[i-1][j-1] = get_lbp_pixel(img, i, j)
return lbp_img
if __name__ == '__main__':
img = cv2.imread('test.jpg', 0)
lbp_img = lbp(img)
cv2.imshow('LBP Image', lbp_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个实现中,`get_lbp_pixel` 函数通过比较中心像素和周围像素的灰度值来计算 LBP 值。在 `lbp` 函数中,遍历图像的每个像素点,调用 `get_lbp_pixel` 函数计算 LBP 值,并将其保存到新的图像中,最后显示 LBP 图像。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)