基于matlab的图像去雾算法详细讲解与实现附matlab实现源代码

合集下载

基于MATLAB的户外监控图像去雾及清晰化处理方案的研究

基于MATLAB的户外监控图像去雾及清晰化处理方案的研究

基于MATLAB的户外监控图像去雾及清晰化处理方案的研究基于MATLAB的户外监控图像去雾及清晰化处理方案的研究摘要:近年来,随着科技的不断进步与发展,监控设备在社会安全领域中扮演着重要的角色。

然而,由于天气条件或环境因素的影响,户外监控图像中常常存在雾霾及模糊问题,进而降低了监控图像的质量和清晰度。

为此,本文提出了一种基于MATLAB的户外监控图像去雾及清晰化处理方案,旨在提高户外监控图像的质量和清晰度。

1. 引言户外监控系统在保障社会安全方面起着至关重要的作用。

然而,由于气象条件或环境因素的限制,户外监控图像中常常受到雾霾的影响,从而导致图像质量下降、细节模糊等问题。

为了解决这一问题,本文提出了一种基于MATLAB的户外监控图像去雾及清晰化处理方案。

2. 相关技术2.1 雾霾成因与特点雾霾是一种由于大气中的悬浮颗粒物或水滴聚集引起的能见度降低的现象。

其成因主要包括大气污染物、气压变化以及湿度等气象因素。

雾霾导致的图像问题主要表现为色调偏暗、对比度降低以及细节模糊等。

2.2 图像去雾算法图像去雾是一种通过数学模型和算法,将雾霾中的影响因素去除,恢复原本清晰的图像的过程。

常用的图像去雾算法包括大气光估计、逆向模糊以及图像增强等。

2.3 图像清晰化算法图像清晰化算法旨在增强图像的清晰度和细节。

常用的图像清晰化算法包括锐化增强、频率域滤波以及边缘增强等。

3. 方法本文提出了一种综合性的基于MATLAB的户外监控图像去雾及清晰化处理方案。

具体步骤如下:(1) 预处理:对获取到的监控图像进行预处理,包括色彩空间转换、降噪等操作,使得图像更适合后续处理。

(2) 雾霾去除:根据雾霾成因和特点,采用大气光估计和逆向模糊的算法来去除图像中的雾霾,恢复图像的清晰度和对比度。

(3) 图像增强:应用图像增强算法,如锐化增强、频率域滤波和边缘增强等,来增强图像的清晰度和细节。

(4) 结果评估:通过与原始图像进行主观和客观评估,来评估处理结果的质量和性能。

Matlab中的图像去模糊与运动估计技术详解

Matlab中的图像去模糊与运动估计技术详解

Matlab中的图像去模糊与运动估计技术详解导言在数字图像处理中,图像模糊是一个常见的问题。

图像模糊可以由多种原因引起,如图像采集设备或相机的不稳定性、图像运动或振动等。

在Matlab中,有许多强大的图像处理工具和函数可以帮助我们解决这些模糊问题。

本文将详细介绍Matlab中的图像去模糊和运动估计技术。

一、图像去模糊技术1.1 点扩散函数(PSF)估计在进行图像去模糊之前,我们首先需要估计点扩散函数(Point Spread Function,PSF)。

PSF描述了从一个点源发出的光在传播过程中如何扩散。

Matlab中有多种方法可以估计PSF。

其中一种常用的方法是利用模糊图像和原始清晰图像之间的关系来估计PSF。

Matlab提供了一些函数,如“deconvblind”和“deconvreg”,可用于此目的。

1.2 盲去卷积在图像模糊恢复中,如果我们没有关于图像模糊的先验知识,就需要使用盲去卷积技术。

盲去卷积是指在不知道点扩散函数的情况下,通过观察被模糊的图像和已知的待恢复的图像之间的差异来进行图像去模糊操作。

Matlab中的“deconvblind”函数可以用于盲去卷积。

1.3 维纳滤波维纳滤波是一种常用的图像去模糊技术,它在图像恢复过程中考虑了模糊和噪声。

维纳滤波通过最小化图像的均方误差来进行优化。

Matlab中的“wiener2”函数可以用于维纳滤波。

1.4 正则约束图像修复正则约束图像修复是一种通过将图像恢复问题转化为最小化一个带有正则项的目标函数来进行图像去模糊操作的技术。

常用的正则项包括全变差(Total Variation)和L1范数。

Matlab中的“deconvreg”函数可以用于正则约束图像修复。

二、运动估计技术2.1 全局运动估计全局运动估计通常用于估计整个图像或图像序列中的全局运动。

这种方法通过找到在两个或多个图像之间最佳匹配的位置来估计运动。

Matlab中的“imregtform”函数可以用于全局运动估计。

图像去雾霭算法及其实现..

图像去雾霭算法及其实现..

图像去雾霭算法及其实现电气工程及其自动化学生姓名杨超程指导教师李国辉摘要雾霭等天气条件下获得的图像,具有图像不清晰,颜色失真等等一些图像退化的现象,直接影响了视觉系统的发挥。

因此,为了有效的改善雾化图像的质量,降低雾霭等天气条件下造成户外系统成像的影响,对雾霭图像进行有效的去雾处理显得十分必要。

本设计提出了三种图像去雾算法,一种是基于光照分离模型的图像去雾算法;一种是基于直方图均衡化的图像去雾算法;还有一种是基于暗原色先验的图像去雾算法。

并在MATLAB的基础上对现实生活的图像进行了去雾处理,最后对不同的方法的处理结果进行了简要的分析。

关键词:图像去雾光照分离直方图均衡化暗原色先验Algorithm and its implementation of image dehazingMajor Electrical engineering and automationStudent Yang Chaocheng Supervisor Li GuohuiAbstract Haze weather conditions so as to obtain the image, the image is not clear, the phenomenon of color distortion and so on some image degradation, directly influence the exertion of the visual system. Therefore, in order to effectively improve the atomization quality of the image, reduce the haze caused by outdoor weather conditions such as imaging system, the influence of the haze image effectively it is necessary to deal with the fog.This design introduced three kinds of algorithms of image to fog, a model is based on the separation of light image to fog algorithm; One is the image to fog algorithm based on histogram equalization; Another is based on the dark grey apriori algorithms of image to fog. And on the basis of MATLAB to the real life to deal with the fog, the image of the processing results of different methods are briefly analyzed.Key words:Image to fog Light separation histogram Dark grey目录摘要 (I)Abstract. (II)目录1绪论图像去雾霭算法及其实现 (1)1.1研究背景及意义 (1)1.2当前图像去雾霭技术发展现状及其趋势 (2)1.3 本文的章节安排 (2)1.4小结 (3)2图像去雾霭基础理论 (4)2.1雾霭的形成机理 (4)2.2图像去雾算法 (4)2.2.1图像增强技术 (5)2.2.2图像复原技术 (5)2.3基于图像增强的去雾霭算法 (5)2.3.1同态滤波 (6)2.3.2光照分离模型 (7)2.3.3小结 (11)2.4基于直方图均衡化的图像去雾算法 (11)2.4.1直方图均衡化去雾原理 (11)2.4.2直方图均衡化模型 (12)2.4.3直方图均衡化的算法步骤 (12)2.4.4小结 (16)2.5基于图像复原的去雾霭方法 (16)2.5.1暗原色先验去雾霭原理 (16)2.5.2暗原色先验模型 (16)2.5.3算法概述 (17)2.5.4小结: (20)3实验结果 (21)4总结与展望 (22)附录1 光照分离代码 (23)附录2 基于直方图均衡化的图像去雾代码 (25)附录3 暗原色先验的去雾代码 (27)参考文献 (29)致谢 (30)图像去雾霭算法及其实现1绪论图像作为人类感知世界的主要视觉基础,是人类获取信息以及表达信息的重要方法。

一种基于matlab实现的Retinex图像去雾方法[发明专利]

一种基于matlab实现的Retinex图像去雾方法[发明专利]

专利名称:一种基于matlab实现的Retinex图像去雾方法专利类型:发明专利
发明人:陈敏聪,花涛,向磊,潘雅汶,张明,周玥明,张广奇,张竞宇
申请号:CN202011420375.5
申请日:20201207
公开号:CN112541869A
公开日:
20210323
专利内容由知识产权出版社提供
摘要:一种基于matlab实现的Retinex图像去雾方法,首先通过图像采集设备获取一幅室外有雾图像,将其分离成RGB三通道;将三通道分别通过多尺度高斯环绕函数得到三通道各自的反射分量;将反射分量从RGB中分离,得到增强图像;对增强图像进行噪声平滑并进行均衡化;然后将图像变换到HSV空间,对V通道进行线性增强,通过极大熵方法来确定最佳增强系数;最后将图像变换回RGB 空间。

本方法解决了传统Retinex算法处理后图像偏暗的现象,自适应的亮度增强过程解决了算法多参数带来的调整困难问题,易于硬件实现,图像质量好,环境适用性高。

申请人:南京工程学院
地址:211167 江苏省南京市江宁区科技园弘景大道1号
国籍:CN
代理机构:南京钟山专利代理有限公司
代理人:上官凤栖
更多信息请下载全文后查看。

基于MATLAB的图像去雾技术研究

基于MATLAB的图像去雾技术研究

基于MATLAB 的图像去雾技术研究齐卉a ,孙超*b ,苏通b ,马俊智b ,朱勇杰b ,丁建军c (江汉大学a.人工智能学院,b.智能制造学院,c.爆炸与爆破技术研究院,湖北武汉430056)摘要:为了对雾霾天气所采集的退化图像做清晰化处理,在MATLAB 平台下构建开发了一个图像去雾系统。

该系统能通过全局直方图均衡化、局部直方图均衡化、多尺度Retinex 、暗通道先验4种经典去雾算法对雾天降质图像进行不同程度的复原,统计图像质量评价指标对比去雾效果。

实验结果表明,经过不同去雾算法处理的图像的清晰度和对比度都有所提高,实际应用中可根据场景需要选择相应算法。

该系统的实现为图像去雾技术的研究奠定基础,具有良好的可操作性。

关键词:MATLAB ;图像去雾系统;图像质量评价中图分类号:TP391.41文献标志码:A 文章编号:1673-0143(2020)06-0084-07DOI :10.16389/42-1737/n.2020.06.012Study on Image Defogging Technology Based on MATLABQI Hui a ,SUN Chao *b ,SU Tong b ,MA Junzhi b ,ZHU Yongjie b ,DING Jianjun c(a.School of Artificial Intelligence ,b.School of Intelligent Manufacturing ,c.Institute of Explosion Science andBlasting Technology ,Jianghan University ,Wuhan 430056,Hubei ,China )Abstract :In order to restore the degraded images collected by outdoor acquisition devices inhaze weather ,this paper proposes an image defogging system on the MATLAB platform.The system can restore foggy degradation images to different degrees through four classicdefogging algorithms :global histogram equalization ,local histogram equalization ,multi-scale Retinex ,and dark channel prior.The defogging effects are compared by image qualityevaluation indicators.Experimental results show that the sharpness and contrast of theimages processed by different defogging algorithms have been improved ,and thecorresponding algorithm can be selected according to the needs of the scene in practicalapplications.The implement of the system lays a foundation for the research of imagedefogging technology ,and it has good operability.Key words :MATLAB ;image defogging system ;image quality evaluation第48卷第6期2020年12月江汉大学学报(自然科学版)J.Jianghan Univ.(Nat.Sci.Ed.)Vol.48No.6Dec.2020收稿日期:2020-04-08基金项目:国家自然科学基金资助项目(61941502);湖北省自然科学基金资助项目(2019CFB205);湖北省教育厅科学研究计划指导性项目(B2019242);武汉市教育局市属高校产学研项目(CXY201803)作者简介:齐卉(1992—),女,助理实验师,硕士,研究方向:信息获取、分析与处理。

视频图像增强和去雾算法matlab实现

视频图像增强和去雾算法matlab实现

视频图像增强和去雾算法说明摘要 本文档介绍夜间增强和去雾增强算法及其实现。

(1)将图像由RGB空间转换到HSI空间,然后对HSI空间亮度分量(I分量)的灰度直方图进行均衡化处理,然后再转换到RGB空间。

空间。

)利用暗原色先验图像去雾算法对图像进行去雾处理。

(2)利用暗原色先验图像去雾算法对图像进行去雾处理。

1目录一、通过I分量增强夜间图像 (3)1. 算法原理 (3)2. M ATLAB程序 (6) (77)3. 夜间增强效果 .................................................................................................................................二、去雾增强 (9) (99)1. 算法原理 .........................................................................................................................................2. M ATLAB程序 (11) (113)3. 去雾效果 .......................................................................................................................................参考文献 (14)一、通过I分量增强夜间图像1. 算法原理首先将图像由RGB空间转换到HSI空间,然后对HSI空间亮度分量(I分量)的灰度直方空间显示。

图进行均衡化处理,提高图像的亮度,然后转换回RGB空间显示。

(1)图像由RGB空间转换到HSI空间。

RGB向HSI模型的转换是由一个基于笛卡尔直角坐标系的单位立方体向基于圆柱极坐标的双锥体的转换。

烟雾检测Matlab代码

烟雾检测Matlab代码

tic;clear all;close all;clc;A = aviinfo('smoke.avi');mov = mmreader('smoke.avi');LEN = A.NumFrames;%得到视频的帧数for i = 1 : LENb = read(mov, i);imwrite(b, strcat('smoke', int2str(i), '.jpg'), 'jpg');endfor x = 1 : LENpic = imread(strcat('smoke', int2str(x), '.jpg'));%读入一张图片pic1 = pic;%pic1中存放的是处理过后的彩色图像pic_hsv = rgb2hsv(pic);s = size(pic1);bw_pic = zeros(s(1), s(2));for i = 1 : s(1)for j = 1 : s(2)if pic_hsv(i, j, 1) > 0.35 && pic_hsv(i, j, 1) < 0.65 && ...pic_hsv(i, j, 2) > 0.06 && pic_hsv(i, j, 2) < 0.3 && ...pic_hsv(i, j, 3) > 0.5 && pic_hsv(i, j, 3) <= 1;pic1(i, j, 1) = 255;pic1(i, j, 2 : 3) = 0;endif pic1(i, j, 1) == 255 && pic1(i, j, 2) == 0bw_pic(i, j) = 1;endendendcov_bw_pic = 1 - bw_pic;fill_pic = imfill(cov_bw_pic, 'holes');fill_pic1 = 1 - fill_pic;B_pic = bwboundaries(fill_pic1);%得到的是一个P×1的单元ss = size(B_pic);%ss的值就是连通分量的数量ss1 = size(B_pic{1, 1});%ss1是一个大小为m×2的矩阵max = ss1(1);for i = 2 : ss(1)%找到最大的连通区域的边界总个数ss2 = size(B_pic{i, 1});if ss2(1)> maxmax = ss2(1);endend%⑤…………………………将小于最大连通区域的连通分量边界赋零for k = 1 : ss(1)%将小于最大连通区域的连通分量边界赋零,%其作用就是将其余小的连通分量与边界隔开Mid = B_pic{k, 1};ss3 = size(Mid);if ss3(1) < maxfor i = 1 : ss3(1)fill_pic1(Mid(i, 1), Mid(i, 2)) = 0;endendend%反转填充cov_fill_pic1 = 1 - fill_pic1;A_fill_pic = imfill(cov_fill_pic1, 'holes');%进行内部填充,再反变换回来,即得到所要求的区域A_fill_pic1 = 1 - A_fill_pic;B_pic1 = bwboundaries(A_fill_pic1);sss = size(B_pic1);%sss的值就是连通分量的数量for k = 1 : sss(1)%该循环作用是找到最大区域的边界,然后在原图像的对应位置上赋红Mid = B_pic1{k};%Mid是一个m×2的矩阵,m就是边界点的数量%ss4(1)表示边界点的数量,Mid(i, 1)和Mid(i, 2)表示边界点的坐标ss4 = size(Mid);if ss4(1) == maxfor i = 1 : ss4(1)pic(Mid(i, 1), Mid(i, 2), 1) = 255;pic(Mid(i, 1), Mid(i, 2), 2 : 3) = 0;endendendimwrite(pic, strcat('lou_smoking', int2str(x), '.jpg'), 'jpg');endaviobj = avifile('lou_smoking.avi');%将处理后的图片连成视频文件aviobj.fps = 25;%初始化视频文件的属性aviobj.Quality = 100;pression = 'None';for i = 1 : LENframe = imread(strcat('lou_smoking', int2str(i), '.jpg'));aviobj = addframe(aviobj, uint8(frame));endaviobj=close(aviobj);%关闭aviobj的对象toc;。

利用Matlab仿真实现图像烟雾识别(k-means聚类图像分割+LBP+PCA+SVM)

利用Matlab仿真实现图像烟雾识别(k-means聚类图像分割+LBP+PCA+SVM)

利⽤Matlab仿真实现图像烟雾识别(k-means聚类图像分割+LBP+PCA+SVM)⽬录⼀、算法简介1.1 c-means聚类算法1 .2 LBP算法1.3 PCA算法1.4 SVM算法⼆、算法实现2.1 烟雾识别算法流程2.2 c-means算法实现2.3 LBP算法实现2.4 SVM算法实现三、结果分析⼀、算法简介1.1 c-means聚类算法聚类分析是根据在数据中发现的描述对象及其关系的信息,将数据对象进⾏分组。

⽬的是使组内的对象相互之间是相似的(相关的),⽽不同组中的对象是不同的(不相关的)。

组内相似性越⼤,组间差距越⼤,说明聚类效果越好。

也就是说,聚类的⽬标是得到较⾼的类内相似度和较低的类间相似度,使得类间的距离尽可能⼤,类内样本与类中⼼的距离尽可能⼩。

在此,我们选⽤k-means聚类算法。

1 .2 LBP算法LBP(Local Binary Pattern,局部⼆值模式)是⼀种⽤来描述图像局部纹理特征的算⼦;它具有旋转不变性和灰度不变性等显著的优点。

它是⾸先由T. Ojala, M.Pietikäinen, 和D. Harwood 在1994年提出,⽤于纹理特征提取,提取的特征是图像的局部的纹理特征。

原始的LBP算⼦定义为在3*3的窗⼝内,以窗⼝中⼼像素为阈值,将相邻的8个像素的灰度值与其进⾏⽐较,若周围像素值⼤于中⼼像素值,则该像素点的位置被标记为1,否则为0。

这样,3*3邻域内的8个点经⽐较可产⽣8位⼆进制数(通常转换为⼗进制数即LBP码,共256种),即得到该窗⼝中⼼像素点的LBP值,并⽤这个值来反映该区域的纹理信息。

1.3 PCA算法PCA(Principal Component Analysis),即主成分分析⽅法,是⼀种使⽤最⼴泛的数据降维算法。

其算法步骤如下:1)数据中⼼化——去均值,根据需要,有的需要归⼀化——Normalized;2)求解协⽅差矩阵;3)利⽤特征值分解/奇异值分解求解特征值以及特征向量;4)将特征值从⼤到⼩排序,保留前k个特征向量5)利⽤特征向量构造投影矩阵;6)利⽤投影矩阵,得出降维的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于matlab的图像去雾算法详细讲解与实现-附matlab 实现源代码————————————————————————————————作者: ————————————————————————————————日期:ﻩ本文主要介绍基于Retinex理论的雾霭天气图像增强及其实现。

并通过编写两个程序来实现图像的去雾功能。

1Rentinex理论Retinex(视网膜“Retina”和大脑皮层“Cortex”的缩写)理论是一种建立在科学实验和科学分析基础上的基于人类视觉系统(Human Visual System)的图像增强理论。

该算法的基本原理模型最早是由Edwin Land(埃德温•兰德)于1971年提出的一种被称为的色彩的理论,并在颜色恒常性的基础上提出的一种图像增强方法。

Retinex 理论的基本内容是物体的颜色是由物体对长波(红)、中波(绿)和短波(蓝)光线的反射能力决定的,而不是由反射光强度的绝对值决定的;物体的色彩不受光照非均性的影响,具有一致性,即Retinex理论是以色感一致性(颜色恒常性)为基础的。

根据Edwin Land提出的理论,一幅给定的图像S(x,y)分解成两幅不同的图像:反射物体图像R(x,y)和入射光图像L(x,y),其原理示意图如图8.3-1所示。

图-1 Retinex理论示意图对于观察图像S中的每个点(x,y),用公式可以表示为:ﻫS(x,y)=R(x,y)×L(x,y) (1.3.1)实际上,Retinex理论就是通过图像S来得到物体的反射性质R,也就是去除了入射光L的性质从而得到物体原本该有的样子。

2 基于Retinex理论的图像增强的基本步骤步骤一: 利用取对数的方法将照射光分量和反射光分量分离,即: S'(x,y)=r(x,y)+l(x, y)=log(R(x,y))+log(L(x, y));步骤二:用高斯模板对原图像做卷积,即相当于对原图像做低通滤波,得到低通滤波后的图像D(x,y),F(x, y)表示高斯滤波函数:D(x,y)=S(x, y) *F(x, y);步骤三:在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像G (x,y):G(x,y)=S'(x, y)-log(D(x, y)) ;步骤四:对G (x,y)取反对数,得到增强后的图像R(x , y):R(x, y )=e xp (G(x, y));步骤五:对R (x,y)做对比度增强,得到最终的结果图像。

3 多尺度Retin ex 算法D Jobs on 等人提出了多尺度Ret ine x算法,多尺度算法的基本公式是:[][]{}i 1(,)log (,)log (,)(,)Ni n i n n R x y W I x y F x y I x y ==-*∑其中,i R (x,y )是R etine x的输出,,,i R G B ∈表示3个颜色谱带,(,)F x y 是高斯滤波函数,n W 表示尺度的权重因子,N 表示使用尺度的个数,N =3,表示彩色图像,,,i R G B ∈。

N =1,表示灰度图像。

从公式中可以看出:MSR 算法的特点是能产生包含色调再现和动态范围压缩这两个特性的输出图像。

在MSR算法的增强过程中,图像可能会因为增加了噪声而造成对图像中的局部区域色彩失真,使得物体的真正颜色效果不能很好的显现出来,从而影响了整体视觉效果。

为了弥补这个缺点,一般情况下会应用带色彩恢复因子C 的多尺度算法(MSR CR )来解决。

带色彩恢复因子C 的多尺度算法(MSRCR)]是在多个固定尺度的基础上考虑色彩不失真恢复的结果,在多尺度R etinex 算法过程中,我们通过引入一个色彩因子C 来弥补由于图像局部区域对比度增强而导致图像颜色失真的缺陷,通常情况下所引入的色彩恢复因子C的表达式为(,)(,)(,)i i MSRCR i MSR R x y C x y R x y =1(,)(,)[(,)][](,)i i i Nj j I x y C x y f I x y f I x y ===∑其中,i C 表示第个通道的色彩恢复系数,它的作用是用来调节3个通道颜色的比例,()f •表示的是颜色空间的映射函数。

带色彩恢复的多尺度Retine x算法(M SRC R)通过色彩恢复因子C 这个系数来调整原始图像中三个颜色通道之间的比例关系,从而通过把相对有点暗的区域的信息凸显出来,以达到消除图像色彩失真的缺陷。

处理后的图像局域对比度提高,而且它的亮度与真实的场景很相似,图像在人们视觉感知下显得极其逼真。

因此,MSR 算法具有较好的颜色再现性、亮度恒常性以及动态范围压缩等特性。

4 例程精讲例程1是基于Ret in ex 理论进行雾霭天气增强的MAT LAB 程序,读者可结合程序及注释对基于Ret inex 理论进行雾霭天气增强的基本原理进行进一步分析,该程序的运行结果如图-2所示。

例程1:clear;closeall;%读入图像I=imread('wu.png');% 取输入图像的R分量R=I(:,:,1);[N1,M1]=size(R);%对R分量进行数据转换,并对其取对数R0=double(R);Rlog=log(R0+1);% 对R分量进行二维傅里叶变换Rfft2=fft2(R0);% 形成高斯滤波函数sigma=250;F = zeros(N1,M1);fori=1:N1for j=1:M1F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigm a));endendF = F./(sum(F(:)));%对高斯滤波函数进行二维傅里叶变换Ffft=fft2(double(F));% 对R分量与高斯滤波函数进行卷积运算DR0=Rfft2.*Ffft;DR=ifft2(DR0);% 在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像DRdouble=double(DR);DRlog=log(DRdouble+1);Rr=Rlog-DRlog;% 取反对数,得到增强后的图像分量EXPRr=exp(Rr);%对增强后的图像进行对比度拉伸增强MIN =min(min(EXPRr));MAX = max(max(EXPRr));EXPRr= (EXPRr-MIN)/(MAX-MIN);EXPRr=adapthisteq(EXPRr);% 取输入图像的G分量G=I(:,:,2);[N1,M1]=size(G);%对G分量进行数据转换,并对其取对数G0=double(G);Glog=log(G0+1);% 对G分量进行二维傅里叶变换Gfft2=fft2(G0);%形成高斯滤波函数sigma=250;for i=1:N1for j=1:M1F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));endendF =F./(sum(F(:)));%对高斯滤波函数进行二维傅里叶变换Ffft=fft2(double(F));%对G分量与高斯滤波函数进行卷积运算DG0=Gfft2.*Ffft;DG=ifft2(DG0);%在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像DGdouble=double(DG);DGlog=log(DGdouble+1);Gg=Glog-DGlog;% 取反对数,得到增强后的图像分量EXPGg=exp(Gg);%对增强后的图像进行对比度拉伸增强MIN =min(min(EXPGg));MAX=max(max(EXPGg));EXPGg= (EXPGg-MIN)/(MAX-MIN);EXPGg=adapthisteq(EXPGg);%取输入图像的B分量B=I(:,:,3);[N1,M1]=size(B);%对B分量进行数据转换,并对其取对数B0=double(B);Blog=log(B0+1);%对B分量进行二维傅里叶变换Bfft2=fft2(B0);%形成高斯滤波函数sigma=250;for i=1:N1for j=1:M1F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));endendF =F./(sum(F(:)));% 对高斯滤波函数进行二维傅里叶变换Ffft=fft2(double(F));%对B分量与高斯滤波函数进行卷积运算DB0=Gfft2.*Ffft;DB=ifft2(DB0);%在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像DBdouble=double(DB);DBlog=log(DBdouble+1);Bb=Blog-DBlog;EXPBb=exp(Bb);%对增强后的图像进行对比度拉伸增强MIN= min(min(EXPBb));MAX= max(max(EXPBb));EXPBb = (EXPBb-MIN)/(MAX-MIN);EXPBb=adapthisteq(EXPBb);% 对增强后的图像R、G、B分量进行融合I0(:,:,1)=EXPRr;I0(:,:,2)=EXPGg;I0(:,:,3)=EXPBb;%显示运行结果subplot(121),imshow(I);subplot(122),imshow(I0);****************************************************************************************图-2 例程1的运行结果例程2是基于Retinex理论进行雾霭天气增强的MATLAB程序,读者可结合程序及注释对基于Retinex理论进行雾霭天气增强的基本原理进行进一步分析,该程序的运行结果如图-3所示。

例程2:****************************************************************************************clear;closeall;I=imread('wu.png');%分别取输入图像的R、G、B三个分量,并将其转换为双精度型R=I(:,:,1);G=I(:,:,2);B=I(:,:,3);R0=double(R);G0=double(G);B0=double(B);[N1,M1]=size(R);% 对R分量进行对数变换Rlog=log(R0+1);%对R分量进行二维傅里叶变换Rfft2=fft2(R0);% 形成高斯滤波函数(sigma=128)sigma=128;F =zeros(N1,M1);for i=1:N1for j=1:M1F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));endendF = F./(sum(F(:)));% 对高斯滤波函数进行二维傅里叶变换Ffft=fft2(double(F));%对R分量与高斯滤波函数进行卷积运算DR0=Rfft2.*Ffft;DR=ifft2(DR0);%在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像DRdouble=double(DR);DRlog=log(DRdouble+1);Rr0=Rlog-DRlog;%形成高斯滤波函数(sigma=256)sigma=256;F = zeros(N1,M1);fori=1:N1for j=1:M1F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));endendF = F./(sum(F(:)));% 对高斯滤波函数进行二维傅里叶变换Ffft=fft2(double(F));% 对R分量与高斯滤波函数进行卷积运算DR0=Rfft2.*Ffft;DR=ifft2(DR0);%在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像DRdouble=double(DR);DRlog=log(DRdouble+1);Rr1=Rlog-DRlog;% 形成高斯滤波函数(sigma=512)sigma=512;F = zeros(N1,M1);for i=1:N1for j=1:M1F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));endendF= F./(sum(F(:)));% 对高斯滤波函数进行二维傅里叶变换Ffft=fft2(double(F));% 对R分量与高斯滤波函数进行卷积运算DR0=Rfft2.*Ffft;DR=ifft2(DR0);%在对数域中,用原图像减去低通滤波后的图像,得到高频增强的图像DRdouble=double(DR);DRlog=log(DRdouble+1);Rr2=Rlog-DRlog;% 对上述三次增强得到的图像取均值作为最终增强的图像Rr=(1/3)*(Rr0+Rr1+Rr2);%定义色彩恢复因子Ca=125;II=imadd(R0,G0);II=imadd(II,B0);Ir=immultiply(R0,a);C=imdivide(Ir,II);C=log(C+1);%将增强后的R分量乘以色彩恢复因子,并对其进行反对数变换Rr=immultiply(C,Rr);EXPRr=exp(Rr);%对增强后的R分量进行灰度拉伸MIN =min(min(EXPRr));MAX= max(max(EXPRr));EXPRr =(EXPRr-MIN)/(MAX-MIN);EXPRr=adapthisteq(EXPRr);[N1,M1]=size(G);% 对G分量进行处理,步骤与对R分量处理的步骤相同,请读者仿照R分量处理的步骤进行理解。

相关文档
最新文档