直方图均衡化去雾算法py
时间: 2023-09-03 21:13:16 浏览: 109
直方图均衡去雾的四种做法_直方图去雾_直方图均衡_图像增强matlab_
5星 · 资源好评率100%
以下是基于Python实现的直方图均衡化去雾算法:
```
import cv2
import numpy as np
# 读取图像
img = cv2.imread('foggy_image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 直方图均衡化
equ = cv2.equalizeHist(gray)
# 伽马校正
gamma = 0.6
invGamma = 1.0 / gamma
table = np.array([((i / 255.0) ** invGamma) * 255
for i in np.arange(0, 256)]).astype("uint8")
res = cv2.LUT(equ, table)
# 模糊处理
kernel_size = 5
blur = cv2.GaussianBlur(res, (kernel_size, kernel_size), 0)
# 显示图像
cv2.imshow('Original Image', img)
cv2.imshow('Foggy Image', gray)
cv2.imshow('Enhanced Image', equ)
cv2.imshow('Gamma-Corrected Image', res)
cv2.imshow('Blurred Image', blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该算法分为以下几个步骤:
1. 读取图像并将其转换为灰度图像。
2. 对灰度图像进行直方图均衡化,以增强图像对比度。
3. 对均衡化后的图像进行伽马校正,以调整图像亮度。
4. 对伽马校正后的图像进行模糊处理,以去除雾霾效果。
5. 显示原始图像、雾霾图像、增强图像、伽马校正图像和模糊图像。
需要注意的是,该算法的效果受到多种因素的影响,如雾霾浓度、光照条件等。因此,在实际应用中,需要根据具体情况对算法进行调整和优化。
阅读全文