基于颜色衰减先验模型的单幅图像快速去雾算法

一、算法原理框架

二、代码实现

1. 参数初始化与预处理

function dehaze_color_attenuation(I)
    % 参数设置
    [h,w,c] = size(I);
    lambda = 0.5; % 正则化参数
    beta = 1.0;   % 大气散射系数(可动态调整)
    
    % 转换到HSV空间
    hsv = rgb2hsv(I);
    v = hsv(:,:,3); % 亮度通道
    s = hsv(:,:,2); % 饱和度通道
    
    % 计算颜色衰减特征
    delta = v - s;
    d = 0.121779 + 0.959710*v - 0.780245*s; % 线性景深模型

2. 大气光估计

    % 前景掩膜生成
    dark_channel = min(I, [], 3);
    [~, idx] = sort(dark_channel(:));
    top_pixels = idx(1:round(0.001*size(I,1)*size(I,2)));
    
    % 多尺度候选区域
    patches = im2col(zeros(size(I)), [15 15], 'distinct');
    max_patches = max(patches, [], 1);
    
    % 自适应大气光选择
    A = zeros(3,1);
    for ch = 1:3
        A(ch) = mean(I(repmat(idx(1:100),1,3), ch));
    end

3. 景深优化与透射率计算

    % 引导滤波优化景深
    d_filtered = guidedfilter(rgb2gray(I), d, 30, 1e-3);
    
    % 透射率计算
    t = exp(-beta * d_filtered);
    t = max(min(t, 0.9), 0.1); % 限制透射率范围

4. 去雾重建

    % 去雾公式
    J = zeros(size(I));
    for ch = 1:3
        J(:,:,ch) = (I(:,:,ch) - (1-t)*A(ch)) ./ t;
        J(:,:,ch) = max(min(J(:,:,ch), 1), 0);
    end
    
    % 颜色校正
    J = color_correction(J);
end

三、关键优化策略

1. 快速景深估计

% 积分图像加速
sum_v = cumsum(cumsum(v,1),2);
sum_s = cumsum(cumsum(s,1),2);
delta_map = (sum_v(2:end-1,2:end-1) - sum_v(1:end-2,2:end-1)) ...
           - (sum_s(2:end-1,2:end-1) - sum_s(1:end-2,2:end-1));

2. 自适应大气光

% 多区域候选
blocks = mat2cell(rgb2gray(I), 15*ones(1, h/15), 15*ones(1, w/15));
A_candidates = cellfun(@(b) max(b(:)), blocks);
A = mean(A_candidates(A_candidates > 0.9));

3. 并行计算加速

% GPU加速版本
gpu_I = gpuArray(I);
gpu_v = rgb2hsv(gpu_I);
parfor ch = 1:3
    t(:,:,ch) = exp(-beta * guidedfilter(gpu2uint8(rgb2gray(gpu_I)), gpu_v(:,:,ch), 30, 1e-3));
end

四、参考

  1. 核心文献
    • Zhu Q, et al. "Color Attenuation Prior for Single Image Dehazing" CVPR 2015
    • 改进的景深模型
  2. MATLAB工具箱
    • Image Processing Toolbox
    • Parallel Computing Toolbox
  3. 代码 基于颜色衰减先验模型的单幅图像快速去雾算法 www.youwenfan.com/contentcnl/51113.html
posted @ 2025-11-13 09:46  qy98948221  阅读(2)  评论(0)    收藏  举报