使用python代码实现图像增强实现,要求实现局部增强,同态滤波,USM虚光蒙版滤镜
时间: 2023-09-30 11:08:37 浏览: 142
USM.rar_USM增强_USM锐化_usm_反锐化掩模_图像细节增强
以下是使用Python实现图像增强的代码,包括局部增强、同态滤波和USM虚光蒙版滤镜:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('image.jpg')
# 局部增强
kernel = np.ones((5,5), np.uint8)
erosion = cv2.erode(img, kernel, iterations=1)
dilation = cv2.dilate(erosion, kernel, iterations=1)
# 同态滤波
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = np.float32(img)
rows, cols = img.shape
M = 2*cols + 1
N = 2*rows + 1
sigma = 10
[X,Y] = np.meshgrid(np.arange(-cols, cols), np.arange(-rows, rows))
G = np.exp(-(X**2+Y**2)/(2*sigma**2))
H = (1 - G) * (2*np.pi*sigma**2)
H = np.fft.fftshift(H)
F = np.fft.fft2(img, [N, M])
F_H = np.multiply(H, F)
f_h = np.real(np.fft.ifft2(F_H))
f_h = f_h[0:rows, 0:cols]
f_h = np.uint8(np.clip(f_h, 0, 255))
# USM虚光蒙版滤镜
gaussian_3 = cv2.GaussianBlur(img, (0, 0), 2.0)
unsharp_image = cv2.addWeighted(img, 1.5, gaussian_3, -0.5, 0, img)
# 显示图像
cv2.imshow("Original Image", img)
cv2.imshow("局部增强", dilation)
cv2.imshow("同态滤波", f_h)
cv2.imshow("USM虚光蒙版滤镜", unsharp_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
需要注意的是,代码中使用的图像文件需要与代码文件在同一目录下,且文件名需要与代码中给出的文件名相同。另外,同态滤波和USM虚光蒙版滤镜需要转换图像为灰度图像。
阅读全文