当前位置: 首页 > news >正文

物理模型的图像去雾算法MATLAB实现

物理模型的图像去雾算法MATLAB实现 结合了大气散射模型、暗通道先验和优化算法


一、算法原理与流程

1. 大气散射物理模型

\(I(x)=J(x)t(x)+A(1−t(x))\)

  • \(I(x)\):有雾图像
  • \(J(x)\):无雾图像(目标)
  • \(t(x)\):透射率
  • \(A\):大气光强度

2. 核心步骤

  1. 暗通道估计:计算图像暗通道作为先验信息
  2. 大气光估计:通过暗通道最亮区域确定全局大气光
  3. 透射率优化:结合软抠图算法细化透射率图
  4. 图像恢复:基于物理模型反演无雾图像

二、实现

function dehazed_img = physical_dehaze(I, block_size, w, t0)% 输入参数:% I: 输入有雾图像 (RGB)% block_size: 暗通道计算窗口尺寸% w: 透射率保留系数 (0<w<1)% t0: 透射率下限阈值% 预处理I = im2double(I);[rows, cols, ~] = size(I);% 1. 暗通道计算dark_channel = compute_dark_channel(I, block_size);% 2. 大气光估计A = estimate_atmospheric_light(I, dark_channel, block_size);% 3. 初始透射率估计transmission = 1 - w * dark_channel / A;transmission = max(transmission, t0);% 4. 透射率优化(软抠图)transmission = guided_filter(I(:,:,1), transmission, 60, 1e-3);% 5. 图像恢复J = zeros(size(I));for c = 1:3J(:,:,c) = (I(:,:,c) - A) ./ transmission + A;end% 后处理dehazed_img = post_process(J);
end%% 暗通道计算函数
function dark = compute_dark_channel(I, block_size)[rows, cols, ~] = size(I);dark = zeros(rows, cols);% 最小值滤波half_block = floor(block_size/2);padded = padarray(I, [half_block, half_block], 'symmetric');for i = 1:block_sizefor j = 1:block_sizewindow = padded(i:i+rows-1, j:j+cols-1, :);dark = min(dark, min(window, [], 3));endend
end%% 大气光估计函数
function A = estimate_atmospheric_light(I, dark, block_size)[rows, cols, ~] = size(I);num_pixels = block_size^2;% 选择暗通道最亮的0.1%像素flat_dark = dark(:);[~, idx] = sort(flat_dark, 'descend');top_pixels = idx(1:round(0.001*num_pixels));% 在原图中取对应位置的最大值A = zeros(1,3);for c = 1:3channel = I(:,:,c);A(c) = mean(channel(top_pixels));end
end%% 后处理函数
function J = post_process(J)% 直方图均衡化增强J = imadjust(J);% 自适应对比度拉伸J = adapthisteq(J, 'ClipLimit', 0.02);% 去雾增强J = imsharpen(J, 'Radius', 2, 'Amount', 1.5);
end

三、改进与优化

1. 自适应大气光估计

  • 分块处理:将图像划分为多个区域独立估计大气光
  • 惩罚因子:对过曝区域进行抑制
% 改进后的大气光估计
function A = adaptive_atmosphere(I, dark)[rows, cols, ~] = size(I);num_regions = 16;region_size = floor(rows/num_regions);A = zeros(1,3);for r = 1:num_regionsfor c = 1:num_regions% 区域定位y = (r-1)*region_size + 1;x = (c-1)*region_size + 1;% 区域暗通道统计region_dark = dark(y:y+region_size-1, x:x+region_size-1);mean_dark = mean(region_dark(:));% 选择最亮区域if mean_dark > 0.8A = A + mean(I(y:y+region_size-1, x:x+region_size-1), 'all');endendendA = A / num_regions;
end

2. 透射率优化策略

  • 引导滤波:保持边缘信息的同时平滑噪声
  • 多尺度处理:结合小波变换进行多分辨率优化
% 引导滤波优化透射率
function transmission = guided_filter_guide(I, transmission, radius, eps)mean_I = imgaussfilt(I, radius);mean_T = imgaussfilt(transmission, radius);corr_I = imgaussfilt(I.^2, radius) - mean_I.^2;corr_IT = imgaussfilt(I.*transmission, radius) - mean_I.*mean_T;var_I = corr_I + eps;cov_IT = corr_IT + eps;a = cov_IT ./ var_I;b = mean_T - a .* mean_I;transmission = a .* I + b;transmission = medfilt2(transmission, [3 3]);
end

参考代码 基于物理模型的图像去雾算法 www.youwenfan.com/contentcnl/79152.html

四、应用场景示例

1. 交通监控视频去雾

videoReader = VideoReader('highway.mp4');
videoWriter = VideoWriter('dehazed.avi');
open(videoWriter);while hasFrame(videoReader)frame = readFrame(videoReader);dehazed = physical_dehaze(frame, 15, 0.92, 0.1);writeVideo(videoWriter, dehazed);
end
close(videoWriter);

2. 无人机航拍图像增强

% 加载航拍图像
img = imread('aerial_haze.jpg');% 多尺度处理
pyramid = imagePyramid(img, 'NumLevels', 3);
dehazed_pyramid = cell(size(pyramid));
for i = 1:length(pyramid)dehazed_pyramid{i} = physical_dehaze(pyramid{i}, 9, 0.85, 0.15);
end% 重建图像
dehazed_img = reconstructImage(dehazed_pyramid);

方法在标准测试集上表现优异,建议根据具体场景调整参数(如窗口尺寸、保留系数等),通过交叉验证优化模型性能。

http://www.jsqmd.com/news/40145/

相关文章:

  • DDR4仿真之仿真环境搭建(二)
  • 2025年评价高的悍高同款衣帽间收纳精品推荐榜
  • 2025年评价高的发热管缩管机行业内知名厂家排行榜
  • 2025年质量好的减速机配件厂家最新推荐权威榜
  • 2025年知名的螺旋压榨机厂家最新TOP实力排行
  • 2025年淬火油冷却塔订制厂家权威推荐榜单:PAG冷却塔/无锡冷却塔/封闭式凉水塔源头厂家精选
  • PVE中,在CPU为非HOST模式下,SR-IOV直通显卡代码43问题的解决方法
  • 2025年比较好的成都中空板厂家最新推荐权威榜
  • 2025年比较好的无尘车间净化铝材厂家推荐及采购参考
  • 2025年靠谱的高速提升机TOP品牌厂家排行榜
  • 2025年比较好的三菱印刷机胶辊厂家推荐及选择指南
  • 2025人工智能教育最新top5推荐:深度解析产业适配与教学实力
  • 2025年比较好的精密减速器用户好评厂家排行
  • VonaJS: 序列化/数据脱敏(上)
  • 2025年公交站台制造厂推荐指南:行业前十强排名分析
  • 2025年比较好的10吨地磅TOP品牌厂家排行榜
  • Offload flow APR GC
  • RAG项目实战:基于图文PDF的多模态问答RAG项目(一)调研阶段
  • 2025年评价高的压滤机厂家推荐及采购参考
  • 2025年靠谱的麦稻草浆挤浆机TOP实力厂家推荐榜
  • 深入解析:Flutter鸿蒙开发
  • 2025新加坡金融科技节:看AI驱动的金融转型策略与“中国方案”
  • 国产化Excel开发组件Spire.XLS教程:Python将列表导出为CSV文件(含一维/二维/字典列表)
  • 2025年评价高的连续式台车炉厂家最新推荐权威榜
  • 【2025-11-13】乡土人情
  • .Net10(2025-11-11正式版)与win7/.Net8兼容性测试
  • 软件测试— 测试分类 - 教程
  • 2025 最新杭州办公室出租公司推荐!涵盖生态化服务、定制化空间及增值服务优选指南杭州租办公室/杭州租赁办公室/杭州办公室租赁公司推荐
  • 2025年知名的Lanny阀组比例阀厂家推荐及选购指南
  • 2025年知名的游乐设备PC管用户好评厂家排行