【图像增强】基于matlab DEHAZENET和HWD的水下去散射图像增强【含Matlab源码 087期】
一、图像增强技术简介
图像增强
图像增强是对图像的某些特征,如边缘、轮廓、对比度等进行强调或锐化,以便于显示、观察或进一步分析与处理。通过对图像的特定加工,将被处理的图像转化为对具体应用来说视觉质量和效果更“好”或更“有用”的图像。
图像增强是最基本最常用的图像处理技术,常用于其他图像处理的预处理阶段。
(1)高通平滑、低通锐化;平滑模糊、锐化突出图像细节
(2)滤波器还有带通、带阻等形式
(3)根据噪声(椒盐噪声、高斯噪声…)的不同,选用不同的滤波
(4)邻域有4-邻域、对角邻域、8-邻域,相对应的有邻接,即空间上相邻、像素灰度相似
(5)图像边缘处理:忽略不处理、补充、循环使用
(6)目前尚未图像处理大多基于灰度图像
去散射和边缘增强是解决水下图像的对比度严重衰减、颜色偏差和边缘模糊等问题的关键步骤。这篇论文提出了一种较好的水下图像增强的方法。首先使用经过端到端训练的卷积神经网络去测量输入图片,同时以自适应双边滤波器对传输图片进行处理。接着提出一种基于白平衡的策略来消除图片的颜色偏差,用拉普拉斯金字塔融合获得无雾和色彩校正图像的融合结果。 最后,输出图像被转换为混合小波和方向滤波器组(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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/112424542
- 点赞
- 收藏
- 关注作者
评论(0)