1.简述
在实际应用当中,有时候需要进行图像增强来改善图像的视觉效果。在此问题处理当中,按照颜色可以分为灰度图像增强和彩色图像增强。按照作用域分类,可以分为空域处理和频域处理。
图像空域处理方法通常有灰度变换,直方图均衡,图像平滑和锐化。频域处理有DFT变换,采用滤波的方法进行图像增强。现有的方法自适应的效果都比较差,这里提出一种模糊自适应的方法——基于DWT的图像自适应增强。
2.代码
clear all;
B = double(imread('lena.bmp'));
A = B(:,:,1);
s = size(A); s1 = s(1,1); s2 = s(1,2);
figure,imshow(A/256);
%% 对图像A作小波变换
h = sqrt(2)*[-1/8,1/4,3/4,1/4,-1/8];
g = sqrt(2)*[0,0,-1/4,1/2,-1/4];
DEPTH = 4; % 小波分解的层数
b = 0.2; c = 5;
a = 1/(1/(1+exp(c*(b-1)))-1/(1+exp(c*(1+b))));
k = 1; ALL = A;
while (k <= DEPTH)
[ALL,ALH,AHL,AHH] = MyDWT2(ALL,h,g);
M = max(max(ALH)); ALH = ALH/M;
ALH = a*(1./(1+exp(c*(b-ALH)))-1./(1+exp(c*(b+ALH))));
ALH = M*ALH;
M = max(max(AHL)); AHL = AHL/M;
AHL = a*(1./(1+exp(c*(b-AHL)))-1./(1+exp(c*(b+AHL))));
AHL = M*AHL;
M = max(max(AHH)); AHH = AHH/M;
AHH = a*(1./(1+exp(c*(b-AHH)))-1./(1+exp(c*(b+AHH))));
AHH = M*AHH;
s1 = s1/2; s2 = s2/2;
B(1:s1,1:s2) = ALL;
B(1:s1,s2+1:2*s2) = ALH;
B(s1+1:2*s1,1:s2) = AHL; B(s1+1:2*s1,s2+1:2*s2) = AHH;
ALH = zeros(s1,s2);
AHL = zeros(s1,s2);AHH = zeros(s1,s2);
k = k+1;
end
h1 = sqrt(2)*[1/4,1/2,1/4];
g1 = sqrt(2)*[-1/8,-1/4,3/4,-1/4,-1/8,0,0];
k = k-1;
while (k >= 1)
if ( k==DEPTH )
ALL = B(1:s1,1:s2);
end
ALH = B(1:s1,s2+1:2*s2); AHL = B(s1+1:2*s1,1:s2); AHH = B(s1+1:2*s1,s2+1:2*s2);
ALL = MyDWT2(ALL,ALH,AHL,AHH,h1,g1);
s1 = s1*2; s2 = s2*2;
k = k-1;
end
A0=ALL;
figure,imshow(A0/256);