一、课题介绍
雾霾,它会使大气的能见度降低,景物图像发生退化,在雾霾下拍摄的图像内容模糊,对比度下降,这将会严重影响人们的行车系统,卫星系统,导航系统等。目前,拍摄器材成本还是比较高昂,另外又得益于计算机技术的迅猛发展,计算机技术的运算速度越来越快,图像处理系统的价格日益下降,随着计算机视觉与图像处理技术的快速发展,户外视觉系统的研究与应用也在飞速增长。从而图像处理技术得以广泛用于科学和工程领域,为了保证视觉系统全天候正常工作,就必须使系统适应各种天气状况,而雾霾下图像对比度和颜色的会发生退化,导致这些系统无法正常工作。因此,如果有一套行之有效的软件系统,可以改善图像质量现在迫在眉睫。
该课题是基于MATLAB平台的图像去雾处理,配备一个人机交互GUI界面,可以选择局部直方图均衡化,全局直方图均衡化,Retinex算法,通过对比处理前后的图像的直方图,而直方图是一副图像各灰度值在0-256的分布个数的表,信息论已经整明,具有均匀分布直方图的图像,其信息量是最大的。
二、算法介绍
①全局直方图均衡化:通俗地理解就是,不管三七二十一,直接强行对彩色图像的R,G,B三通道颜色进行histeq均衡处理,然后进行三通道重组;
②局部直方图均衡化:设置一个固定大小的滑块,分别对彩色图像进行R,G,B三通道进行逐个像素地平滑处理,然后重组三通道,当然这样做的,虽然实现了图像的去雾效果,但是以部分像素曝光作为牺牲补偿。
③Retinex算法:通俗地讲就是,分离R,G,B三通道,对每个通道进行卷积滤波。
三、GUI设计图(学习好GUI,有助于毕业后从事UI界面设计类工作,如深圳创维,康佳,彩虹电视等需要大量该类岗位,适合女孩子居多,该类工作居于程序员和文员之间)
GUI界面设计图
GUI制作说明:GUI是MATLAB的人机交互式GUI界面,有GUI界面,所有操作可在一个界面上完成,可以为毕设增分不少。GUI可在MATLAB命令行窗口输入guide回车快速打开,GUI常用的控件有axes,edit,putton,text几个组件,不同组件之间通过回调函数来进行连接,触发操作,可教学GUI制作,以及友情推荐同类岗位工作。
四、代码附录
1、图像载入
[name,path]=uigetfile({‘.jpg’;'.bmp’;‘gif’},‘载入图像’);
if isequal(name,0)|isequal(path,0)
errordlg(‘没有选中文件噢’,‘出错’);
return;
else
Img1=imread([path,name]); %获取位置
axes(handles.axes1);%axes表示获取位置,这里选取的位置为axes1;
imshow(Img1); %显示图像
title(‘原图’, ‘FontWeight’, ‘Bold’);
guidata(hObject,handles) %更新结构体;
save(‘Img1’); %保存变量
End
2、算法选择
pnum=get(handles.way,‘value’);%下拉框的值
switch pnum
case 1
set(handles.edit1, ‘String’, …
‘算法1均衡化实现图像去雾算法。’);%将何种方法显示在edit框里
save(‘handles.Img2’);%保存下来
case 2
set(handles.edit1, ‘String’, …
‘算法2实现图像去雾算法。’);
save(‘handles.Img2’);
case 3
set(handles.edit1, ‘String’, …
‘基于算法3去雾算法。’);
save(‘handles.Img2’);
otherwise
end
title(‘去雾图’, ‘FontWeight’, ‘Bold’);
3、直方图
Q = rgb2gray(handles.Img1);
W = rgb2gray(handles.Img2);
axes(handles.axes3); imhist(Q, 64); title(‘原灰度直方图’, ‘FontWeight’, ‘Bold’);
axes(handles.axes4); imhist(W, 64); title(‘处理后的灰度直方图’, ‘FontWeight’, ‘Bold’);
五、运行效果图
部分运行效果图