I=imread("1.jpg"); figure(); imshow(I); title('原始图像'); [h,w,s]=size(I); min_I=zeros(h,w); %下面取得暗影通道图像 for i=1:h for j=1:w dark_I(i,j)=min(I(i,j,:)); end end figure(); imshow(dark_I); title('dark channnel的图形'); atmosphere_light = double(max(max(dark_I))) dark_channel=double(dark_I); t=1-w0*(dark_channel/atmosphere_light); %取得传输函数分布率图 figure(); T=uint8(t*255); imshow(T); title('传输函数t的图形'); t = max(t,t0); I1=double(I); J(:,:,1) = uint8((I1(:,:,1) - (1-t)*atmosphere_light)./t); J(:,:,2) = uint8((I1(:,:,2) - (1-t)*atmosphere_light)./t); J(:,:,3) =uint8((I1(:,:,3) - (1-t)*atmosphere_light)./t); figure(); imshow(J); title('去雾后的图像');
时间: 2023-06-14 16:07:53 浏览: 74
图像去噪基于matlab维纳滤波图像去噪【含Matlab源码 725期】.zip
5星 · 资源好评率100%
这段代码是使用暗通道先验算法进行图像去雾的过程。首先,读入一张图片并显示原始图像。然后,通过计算暗通道图像得到暗影通道图像。接着,通过计算暗影通道图像中的最大值得到大气光值。然后,通过传输函数分布率图来计算传输函数t。接下来,通过调整传输函数t的值,计算去雾后的图像。最后,显示去雾后的图像。
其中,w0和t0是暗通道先验算法中的两个参数,用于调整传输函数t的值。
阅读全文