计算机视觉:图像去雾技术全解析。

图像去雾技术原理解析

计算机视觉中的图像去雾技术

图像去雾技术是计算机视觉领域的重要研究方向,旨在消除雾、霾等天气条件对图像质量的影响,恢复清晰的场景内容。该技术在自动驾驶、视频监控、遥感成像等领域有广泛应用。

图像去雾的基本原理

雾天图像退化模型通常表示为: I(x) = J(x)t(x) + A(1 - t(x)) 其中I(x)是观测到的有雾图像,J(x)是待恢复的无雾图像,t(x)是透射率,A是大气光值。去雾的目标是从I(x)估计J(x)。

基于暗通道先验的去雾方法

暗通道先验是一种有效的去雾方法,基于统计观察发现:在无雾图像的局部区域中,至少有一个颜色通道的像素值非常低。

import cv2
import numpy as np

def dark_channel(img, patch_size=15):
    min_channel = np.min(img, axis=2)
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (patch_size, patch_size))
    dark = cv2.erode(min_channel, kernel)
    return dark

def estimate_atmospheric_light(img, dark, top_percent=0.1):
    img_flat = img.reshape(-1, 3)
    dark_flat = dark.ravel()
    num_pixels = int(dark_flat.shape[0] * top_percent)
    indices = np.argpartition(-dark_flat, num_pixels)[:num_pixels]
    atmospheric_light = np.max(img_flat[indices], axis=0)
    return atmospheric_light

def estimate_transmission(img, atmospheric_light, omega=0.95, patch_size=15):
    normalized_img = img / atmospheric_light
    transmission = 1 - omega * dark_channel(normalized_img, patch_size)
    return transmission

def guided_filter(I, p, r, eps):
    mean_I = cv2.boxFilter(I, cv2.CV_64F, (r, r))
    mean_p = cv2.boxFilter(p, cv2.C
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值