去散射和边缘增强是解决水下图像的对比度严重衰减、颜色偏差和边缘模糊等问题的关键步骤。这篇论文提出了一种较好的水下图像增强的方法。首先使用经过端到端训练的卷积神经网络去测量输入图片,同时以自适应双边滤波器对传输图片进行处理。接着提出一种基于白平衡的策略来消除图片的颜色偏差,用拉普拉斯金字塔融合获得无雾和色彩校正图像的融合结果。 最后,输出图像被转换为混合小波和方向滤波器组(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 sumimg = windowsum_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);
sumimg(1:r+1, :) = imcum(1+r:2r+1, :); sum_img(r+2:h-r, :) = im_cum(2r+2:h, :) - imcum(1:h-2*r-1, :); sumimg(h-r+1:h, :) = repmat(imcum(h, :), [r, 1]) - imcum(h-2*r:h-r-1, :);
% X axis imcum = cumsum(sumimg, 2);
sumimg(:, 1:r+1) = imcum(:, 1+r:2r+1); sum_img(:, r+2:w-r) = im_cum(:, 2r+2:w) - imcum(:, 1:w-2*r-1); sumimg(:, w-r+1:w) = repmat(imcum(:, w), [1, r]) - imcum(:, w-2*r:w-r-1);
end ```