图像去雾opencv
时间: 2023-11-08 11:04:51 浏览: 42
可以使用OpenCV中的dehaze算法来进行图像去雾。该算法基于暗通道先验和大气光模型,可以有效地去除图像中的雾霾。
以下是使用OpenCV进行图像去雾的示例代码:
```python
import cv2
def dehaze(img):
# 计算暗通道图像
dark_channel = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dark_channel = cv2.erode(dark_channel, cv2.getStructuringElement(cv2.MORPH_RECT, (15, 15)))
dark_channel = dark_channel.astype(float)
dark_channel = cv2.min(dark_channel, 200.0)
# 估计大气光
atmos_light = cv2.mean(img, dark_channel)[0]
# 估计透射率
transmission = 1 - 0.95 * (dark_channel / atmos_light)
# 修复图像
img = (img - atmos_light) / cv2.max(transmission, 0.1) + atmos_light
img = cv2.normalize(img, None, 0, 255, cv2.NORM_MINMAX)
return img.astype('uint8')
```