MATLAB视频图像去雾处理(GUI,论⽂,注释)
GUI源码链接:
⼀、课题介绍
雾霾,它会使⼤⽓的能见度降低,景物图像发⽣退化,在雾霾下拍摄的图像内容模糊,对⽐度下降,这将会严重影响⼈们的⾏车系统,卫星系统,导航系统等。⽬前,拍摄器材成本还是⽐较⾼昂,另外⼜得益于计算机技术的迅猛发展,计算机技术的运算速度越来越快,图像处理系统的价格⽇益下降,随着计算机视觉与图像处理技术的快速发展,户外视觉系统的研究与应⽤也在飞速增长。从⽽图像处理技术得以⼴泛⽤于科学和⼯程领域,为了保证视觉系统全天候正常⼯作,就必须使系统适应各种天⽓状况,⽽雾霾下图像对⽐度和颜⾊的会发⽣退化,导致这些系统⽆法正常⼯作。因此,如果有⼀套⾏之有效的软件系统,可以改善图像质量现在迫在眉睫。
该课题是基于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
handles.Img2 = suanfa1(handles.Img1, 0);%执⾏RemoveFogByGlobalHisteq.m这个⼦函数axes(handles.axes2); imshow(handles.Img2, []);%结果图handles.Img2显⽰在axes2中guidata(hObject, handles);
set(handles.edit1, ‘String’, …
‘算法1均衡化实现图像去雾算法。’);%将何种⽅法显⽰在edit框⾥
save(‘handles.Img2’);%保存下来
case 2
handles.Img2 =suanfa2(handles.Img1, 0);
axes(handles.axes2); imshow(handles.Img2, []);
guidata(hObject, handles);
set(handles.edit1, ‘String’, …
‘算法2实现图像去雾算法。’);局部直方图均衡化
save(‘handles.Img2’);
case 3
handles.Img2 = suanfa3(handles.Img1, 0);
axes(handles.axes2); imshow(handles.Img2, []);
guidata(hObject, handles);
set(handles.edit1, ‘String’, …
‘基于算法3去雾算法。’);
save(‘handles.Img2’);
otherwise
end
title(‘去雾图’, ‘FontWeight’, ‘Bold’);
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’);
五、运⾏效果图
部分运⾏效果图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论