Prewitt算子锐化图像函数
时间: 2024-05-13 09:20:03 浏览: 155
以下是使用Prewitt算子对图像进行锐化的Python函数:
```python
import numpy as np
import cv2
def sharpen_with_prewitt(image):
# 定义Prewitt算子
kernel_x = np.array([[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]])
kernel_y = np.array([[-1, -1, -1], [0, 0, 0], [1, 1, 1]])
# 对图像进行卷积操作
img_x = cv2.filter2D(image, -1, kernel_x)
img_y = cv2.filter2D(image, -1, kernel_y)
# 合并x和y方向的梯度
img_grad = cv2.addWeighted(img_x, 0.5, img_y, 0.5, 0)
# 对锐化后的图像进行归一化处理
img_sharpen = cv2.normalize(img_grad, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8UC1)
return img_sharpen
```
使用示例:
```python
import cv2
# 读取图像
image = cv2.imread('image.jpg', 0)
# 调用函数进行锐化
img_sharpen = sharpen_with_prewitt(image)
# 显示原始图像和锐化后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Sharpened Image', img_sharpen)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该函数使用Prewitt算子对图像进行卷积操作,计算x和y方向的梯度,并将两个梯度合并。然后对锐化后的图像进行归一化处理,最终返回锐化后的图像。
阅读全文