MATLAB图像去雾系统

MATLAB图像去雾系统

  • 课题介绍

雾霾,它会使大气的能见度降低,景物图像发生退化,在雾霾下拍摄的图像内容模糊,对比度下降,这将会严重影响人们的行车系统,卫星系统,导航系统等。目前,拍摄器材成本还是比较高昂,另外又得益于计算机技术的迅猛发展,计算机技术的运算速度越来越快,图像处理系统的价格日益下降,随着计算机视觉与图像处理技术的快速发展,户外视觉系统的研究与应用也在飞速增长。从而图像处理技术得以广泛用于科学和工程领域,为了保证视觉系统全天候正常工作,就必须使系统适应各种天气状况,而雾霾下图像对比度和颜色的会发生退化,导致这些系统无法正常工作。因此,如果有一套行之有效的软件系统,可以改善图像质量现在迫在眉睫。

该课题是基于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 = quanju(handles.Img1, 0);%执行RemoveFogByGlobalHisteq.m这个子函数

        axes(handles.axes2); imshow(handles.Img2, []);%结果图handles.Img2显示在axes2中

        guidata(hObject, handles);

        set(handles.edit1, 'String', ...

    '全局直方图算法。');%将何种方法显示在edit框里

        save('handles.Img2');%保存下来

    case 2

       handles.Img2 = jubu(handles.Img1, 0);

       axes(handles.axes2); imshow(handles.Img2, []);

       guidata(hObject, handles);

       set(handles.edit1, 'String', ...

    '局部直方图均算法。');

       save('handles.Img2');

    case 3

       handles.Img2 = Retinex(handles.Img1, 0);

       axes(handles.axes2); imshow(handles.Img2, []);

       guidata(hObject, handles);

       set(handles.edit1, 'String', ...

    'RETINEX算法。');

       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');

  • 预期效果图

                                Ps预期效果图

      

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值