图像去雾的代码实战

图像去雾是图像处理中的一个重要任务,下面是一个简单的图像去雾的示例代码,基于单幅图像去雾的方法。

import cv2
import numpy as np

def dehaze(image, tmin=0.1, A=1.2):
    # 转换为浮点数类型
    image = np.array(image, dtype=np.float64) / 255.0

    # 估计透射率
    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    dark_channel = np.min(image, axis=2)
    dark_channel = cv2.blur(dark_channel, (15, 15))
    dark_channel_idx = np.argsort(dark_channel.reshape(-1))
    dark_channel_idx = dark_channel_idx[:int(dark_channel.size * 0.001)]
    t_estimate = np.max(gray_image) - A * dark_channel
    t_estimate = np.clip(t_estimate, tmin, 1)

    # 恢复图像
    J = np.zeros_like(image)
    for i in range(3):
        J[:, :, i] = (image[:, :, i] - A) / t_estimate + A

    J = np.clip(J, 0, 1) * 255.0
    J = np.array(J, dtype=np.uint8)

    return J

# 读取图像
input_image = cv2.imread('input_image.jpg')

# 图像去雾
output_image = dehaze(input_image)

# 显示原始图像和去雾后的图像
cv2.imshow('Original Image', input_image)
cv2.imshow('Dehazed Image', output_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 图像去雾的代码实战

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值