% 加载图像
img = imread('car_1.jpg');
% 选择小波变换方法
wname = 'db4'; % 小波基为Daubechies 4
[c, l] = wavedec2(img, 1, wname);
% 应用Sobel和Prewitt算子
[h0, h1, v0, v1] = wfilters(wname);
[dx, dy] = dwt2(c, h1, v0);
[dx2, dy2] = dwt2(dx, h1, v0);
[dx3, dy3] = dwt2(dy, h1, v0);
% 应用两个非线性增强函数
fx = log(1 + 0.5*ones(size(dx)) .* exp(-0.5 * (dx .^ 2)));
fy = log(1 + 0.5*ones(size(dy)) .* exp(-0.5 * (dy .^ 2)));
% 将 fx 和 fy 调整为与 dx3 和 dy3 相同的大小
fx = imresize(fx, size(dx3));
fy = imresize(fy, size(dy3));
% 对增强后的图像进行反变换
c = idwt2(dx3 .* (1 - fx), dy3 .* (1 - fy), h0, h1, v0, v1, l, wname);
img_in_light = uint8(wcodemat(c, 255));
% 显示原始图像和增强后的图像
subplot(2, 2, 1);
imshow(img);
title('原始图像');