用Python实现拉普拉斯的四种滤波器
时间: 2023-11-05 08:12:16 浏览: 163
好的,这个问题是关于Python编程的,我可以回答。拉普拉斯滤波器有四种:一阶水平、一阶垂直、二阶十字和二阶斜十字。实现方法可以参考以下代码:
```python
import cv2
import numpy as np
def laplacian_filter(img):
kernel_h1 = np.array([[0, 1, 0], [0, -1, 0], [0, 0, 0]])
kernel_v1 = np.array([[0, 0, 0], [1, -1, 0], [0, 0, 0]])
kernel_h2 = np.array([[0, 1, 0], [1, -4, 1], [0, 1, 0]])
kernel_v2 = np.array([[0, 1, 0], [1, -4, 1], [0, 1, 0]])
img_h1 = cv2.filter2D(img, -1, kernel_h1)
img_v1 = cv2.filter2D(img, -1, kernel_v1)
img_h2 = cv2.filter2D(img, -1, kernel_h2)
img_v2 = cv2.filter2D(img, -1, kernel_v2)
laplace = img_h1 + img_v1 + img_h2 + img_v2
return laplace.astype(np.uint8)
```
这个函数接收一张图像作为输入,并返回经过拉普拉斯滤波器处理后的结果,结果是一个二维numpy数组。调用时只需要传入一张图像即可。希望能对你有帮助。
阅读全文