拉普拉斯算子和马尔算子python代码
时间: 2023-11-12 08:05:45 浏览: 91
拉普拉斯算子和马尔算子是图像处理中常用的算子。下面是它们的Python实现:
拉普拉斯算子:
```python
import cv2
# 读取图像
img = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
# 定义拉普拉斯算子
laplacian_kernel = [[0, 1, 0], [1, -4, 1], [0, 1, 0]]
# 进行卷积操作
img_laplacian = cv2.filter2D(img, -1, kernel=laplacian_kernel)
# 显示结果
cv2.imshow('Laplacian', img_laplacian)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
马尔算子:
```python
import cv2
# 读取图像
img = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
# 定义马尔算子
marr_kernel = cv2.getGaussianKernel(21, 5)
marr_kernel = marr_kernel * marr_kernel.T
marr_kernel /= marr_kernel.max()
marr_kernel = cv2.filter2D(img, -1, kernel=marr_kernel)
# 显示结果
cv2.imshow('Marr', marr_kernel)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意,在实现马尔算子时,我们首先使用cv2.getGaussianKernel()函数定义了一个高斯核,然后把它归一化,并进行卷积操作。
阅读全文