Python 彩色图像锐化代码
时间: 2023-11-05 12:15:18 浏览: 186
下面是一段Python的彩色图像锐化代码:
```python
import numpy as np
import cv2
# 读取彩色图像
img = cv2.imread('test.jpg')
# 使用高斯滤波降噪
img = cv2.GaussianBlur(img, (5, 5), 0)
# 转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 求取梯度
gradX = cv2.Sobel(gray, cv2.CV_32F, 1, 0, ksize=3)
gradY = cv2.Sobel(gray, cv2.CV_32F, 0, 1, ksize=3)
# 求取梯度幅值和方向
magnitude = np.sqrt(gradX ** 2 + gradY ** 2)
angle = np.arctan2(gradY, gradX)
# 阈值处理,得到边缘
thresh = cv2.threshold(magnitude, 100, 255, cv2.THRESH_BINARY)[1]
# 膨胀处理
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
thresh = cv2.dilate(thresh, kernel, iterations=2)
# 线性变换增强对比度
magnitude = cv2.normalize(magnitude, None, 0, 255, cv2.NORM_MINMAX)
magnitude = cv2.convertScaleAbs(magnitude)
# 将边缘与原图像融合
result = cv2.bitwise_and(magnitude, thresh)
# 显示结果
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码使用了OpenCV库进行图像处理,首先对彩色图像进行高斯滤波降噪,然后转换为灰度图并求取梯度幅值和方向,使用阈值处理和膨胀处理得到边缘,并使用线性变换进行对比度增强,最后将边缘与原图像融合显示出来。
阅读全文