clear
clc
close all
img=imread( 'yewan.jpg');
figure,imshow(uint8(img)), title('原始低照度图像');
img(:,:,1)=255-img(:,:,1);
img(:,:,2)=255-img(:,:,2);
img(:,:,3)=255-img(:,:,3);
sz=size(img);
w=sz(2);
h=sz(1);
%计算RGB取最小值后的图像dark_I
dark_I = zeros(h,w);
for y=1:h
for x=1:w
dark_I(y,x) = min(img(y,x,:));%计算每个像素点RGB中最小的值
end
end
kenlRatio = .03;
krnlsz = floor(max([3, w*kenlRatio, h*kenlRatio]));
dark_I2 = minfilt2(dark_I, [krnlsz,krnlsz]);%最小值滤波
dark_I2(h,w)=0;
dark_I2=uint8(dark_I2);
dark_channel=double(dark_I2);
aa=dark_channel;
hh=floor(w*h*0.001);
bb=reshape(aa,1,[]);%将a转换为行向量
bb=sort(bb,'descend');%将b按从大到小顺序排列。
cc=find(bb>0,hh);%找到前4个大于0(非NaN)的数的位置
dd=bb(cc(hh));%找到第4大的数
ee=aa(find(aa>dd));%较大的前3个数
[mm,nn]=find(aa>dd);%较大的前3个数对应下标
AA=[ee mm nn];
bw=zeros(h,w);
num=length(find(aa>dd));
sum=0;
for y=1:h
for x=1:w
for k=1:num
if y==AA(k,2) && x==AA(k,3) && dark_channel(y,x)==AA(k,1)
bw(y,x)=255;
sum=sum+AA(k,1);
end
end
end
end
meandc=floor(sum/num);
minAtomsLight = 240;
A= min([minAtomsLight, meandc]);%计算大气光A
w0=0.9;
t=1-w0*(dark_channel/A);%计算透射率t
t0=0.1;
t=max(t,t0);
img_d = double(img);
J = zeros(h,w,3);
J(:,:,1) = (img_d(:,:,1) - (1-t)*A)./t;%计算去雾后的R通道
J(:,:,2) = (img_d(:,:,2) - (1-t)*A)./t;%计算去雾后的G通道
J(:,:,3) = (img_d(:,:,3) - (1-t)*A)./t;%计算去雾后的B通道
J=uint8(J);
J(:,:,1)=255-J(:,:,1);
J(:,:,2)=255-J(:,:,2);
J(:,:,3)=255-J(:,:,3);
figure(2),imshow(J), title('基于暗原色先验的低照度图像增强J');%去雾图像
imwrite(J,'Lyewan.bmp');


海神之光
- 粉丝: 6w+
最新资源
- 储粮害虫图像分割算法的研究.doc
- 税控发票开票软件发票信息数据接口规范V.doc
- 操作系统实现生产者消费者问题.doc
- 通信电源安装标准化作业指导书.doc
- 运用EXCEL进行系统模拟-库存管理(模型设计).xls
- 基于MatLab分布式编程模型的机械优化设计算法实验指导书样本.doc
- 可提供站点勘察过程-网络课程平台.ppt
- 英语网络统考复习题-整理.doc
- 软件系统的架构设计方案.doc
- 微电网两阶段鲁棒优化经济调度方法:完全复现
- 如何使用和录屏软件制作微课.ppt
- PMP选择题审题词汇.doc
- 基于车速预测时域的MPC自适应轨迹跟踪控制技术及其仿真分析 · 车辆稳定性
- 翔飞高清网络解决方案.doc
- 用友ERP财务软件实务操作教程总账管理系统PPT课件.ppt
- 三级数据库样卷与标准答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


