【图像增强】DEHAZENET和HWD之水下去散射图像增强【Matlab 082期】

一、简介

去散射和边缘增强是解决水下图像的对比度严重衰减、颜色偏差和边缘模糊等问题的关键步骤。这篇论文提出了一种较好的水下图像增强的方法。首先使用经过端到端训练的卷积神经网络去测量输入图片,同时以自适应双边滤波器对传输图片进行处理。接着提出一种基于白平衡的策略来消除图片的颜色偏差,用拉普拉斯金字塔融合获得无雾和色彩校正图像的融合结果。 最后,输出图像被转换为混合小波和方向滤波器组(HWD)域,用于去噪和边缘增强。 实验结果表明,该方法可以消除颜色失真,提高水下图像的清晰度。

二、源代码

clc;
clear;
addpath('codes\')
addpath('Images\')
 
 FileName = uigetfile({
     '*.jpg;*.bmp;*.png'},'Optional images','Images'); 
 input = imread(FileName);
 output = underwater(input);
 underwaterimage2(input);
 
 %i=40;             %Saved images number
 %saveas(1,['./myresults/',num2str(i),'.jpg']);
 
function sum_img = window_sum_filter(image, r)
 
% sum_img(x, y) = = sum(sum(image(x-r:x+r, y-r:y+r)));
 
[h, w] = size(image);
sum_img = zeros(size(image));
 
% Y axis
im_cum = cumsum(image, 1);
 
sum_img(1:r+1, :) = im_cum(1+r:2*r+1, :);
sum_img(r+2:h-r, :) = im_cum(2*r+2:h, :) - im_cum(1:h-2*r-1, :);
sum_img(h-r+1:h, :) = repmat(im_cum(h, :), [r, 1]) - im_cum(h-2*r:h-r-1, :);
 
% X axis
im_cum = cumsum(sum_img, 2);
 
sum_img(:, 1:r+1) = im_cum(:, 1+r:2*r+1);
sum_img(:, r+2:w-r) = im_cum(:, 2*r+2:w) - im_cum(:, 1:w-2*r-1);
sum_img(:, w-r+1:w) = repmat(im_cum(:, w), [1, r]) - im_cum(:, w-2*r:w-r-1);
 
end
 

三、运行结果

【图像增强】DEHAZENET和HWD之水下去散射图像增强【Matlab 082期】_第1张图片

四、备注

完整代码或者代写添加QQ912100926
往期回顾>>>>>>
【图像压缩】图像处理教程系列之图像压缩【Matlab 074期】
【图像分割】图像处理教程系列之图像分割(一)【Matlab 075期】
【图像分割】图像处理教程系列之图像分割(二)【Matlab 076期】
【模式识别】银行卡号之识别【Matlab 077期】
【模式识别】指纹识别【Matlab 078期】
【图像处理】基于GUI界面之DWT+DCT+PBFO改进图像水印隐藏提取【Matlab 079期】
【图像融合】CBF算法之图像融合【Matlab 080期】
【图像去噪】自适应形态学之图像去噪【Matlab 081期】

你可能感兴趣的:(matlab,图像处理)