MATLAB典型去雾算法代码..

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

并在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的图像去雾技术研究

基于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—),女,助理实验师,硕士,研究方向:信息获取、分析与处理。

数字图像去雾快速算法

数字图像去雾快速算法

数字图像去雾快速算法1.简介。

严格的来说,去雾也是对⽐度增强的⼀种。

但是⽤常见的对⽐度增强以及直⽅图均衡的算法根本达不到良好的效果。

这⽅⾯最近⽐较好的⼯作就是He kaiming等提出的Dark Channel⽅法。

这篇论⽂也获得了2009的CVPR最佳论⽂奖。

⽂章标题: single Image Haze Removal Using Dark Channel Prior。

2. 暗通道先验的理解从论⽂的公式1可以看出,去雾模型和图像抠图在代数⽅程上是⼀致的。

简单的说,有雾⽓的图像I是由清晰图像J与⼤⽓光幕A的alpha混合,混合⽅程如下:I = alpha * J + A * (1 - alpha)从上述⽅程看出,我们在仅仅知道I的前提下,要得到J,这是⼀个有⽆穷多个解的问题。

事实上,图像处理的很多问题都是这样,当被规约为简单代数⽅程之后,都有⽆穷多个解。

如果我们找到⼀些对⽅程中变量的先验分布,则可能得出⽅程的唯⼀解。

He kaiming等通过对⼤量清晰⽆雾图像的统计发现这样⼀个事实:在图像的⼀个⼩的区域,⾄少有⼀个通道的最⼩值趋向于零。

⽽图像中有雾的区域,并不满⾜这⼀规律。

这个规律就是暗通道先验。

根据这⼀规律,He kaiming等推导了求解透射率的公式。

简单的说,透射率,其实就是上述⽅程中的 1- alpha,这个分量。

3. 优化透射率。

作者采⽤暗通道求反,得到透射率的初步估计。

然后,作者根据抠图模型的⼀篇经典⽂献:A Closed Form solution to Nature Image Matting中采⽤的⽅法,逐步求精,优化透射率,消除了透射率的块效应。

⽽对⼤⽓光幕的估计,作者也给出了简单的思路,即直接取暗通道的最⼤值的99.5%。

事实上,⽹上已经有matlab代码,但是在求取透射率的时候,没有优化透射率,所以⽹上的matlab代码去雾效果与作者的效果相差甚远。

4. 时间复杂度。

算法的效果虽然⽐以往的算法好很多,但是计算时间很慢。

基于Matlab的图像去雾系统的设计研究

基于Matlab的图像去雾系统的设计研究

作者: 张道华[1]
作者机构: [1]亳州学院电子与信息工程系,安徽亳州236800
出版物刊名: 通化师范学院学报
页码: 1-6页
年卷期: 2019年 第4期
主题词: Matlab;图像增强;去雾系统;三种算法
摘要:为了实现雾天图像的增强,采用Matlab对集成直方图均衡化、Retinex、暗通道优先三种雾天图像清晰化处理算法的去雾系统进行软件实现,不仅能够对这三种算法的最终结果和中间产物进行输出,还能够对这三种算法的算法效率和算法结果进行直观数字的对比.实验表明,三种算法各有优缺点,实际应用中可根据需要选取适当的算法.该系统的设计可为其他去雾算法的研究提供技术参考.。

烟雾检测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)利⽤投影矩阵,得出降维的数据。

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

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

基于MATLAB的户外监控图像去雾及清晰化处理方案的研究基于MATLAB的户外监控图像去雾及清晰化处理方案的研究摘要:随着人工智能和计算机视觉的发展,户外监控图像在保障公共安全方面扮演着重要角色。

然而,户外环境中的天气因素,如雾霾和大气污染,会导致监控图像失真,降低了其清晰度和可视性。

本文基于MATLAB开展研究,提出了一种基于图像去雾和清晰化处理的方案,旨在通过算法的改进提高户外监控图像的清晰度和质量。

1. 引言随着城市化进程的加快,社会安全问题日益突出,对于户外监控设备的需求也不断增加。

然而,由于气候和环境的影响,户外监控图像中存在雾霾、雨雾等现象,导致目标物体模糊不清,降低了监控图像的可视性。

2. 图像去雾方法为了解决监控图像中存在的雾霾问题,本文提出了一种基于原图像的暗传递函数估计和导向滤波的去雾方法。

首先,利用原图像和暗通道先验原理,估计出图像中的暗传递函数。

然后,通过导向滤波的方式,对图像进行去雾处理。

导向滤波的原理是通过引导图像的细节来保持图像的细节信息,从而提高监控图像的清晰度。

3. 清晰化处理方法除了进行去雾处理外,在清晰化处理方面也有很多方法可供选择。

本文提出了一种基于图像锐化的清晰化处理方法,在图像锐化的过程中,通过增强图像的高频信息,使目标物体的边缘更加清晰,提高图像的清晰度。

4. 算法实现与实验结果在MATLAB环境下,实现了以上提出的去雾和清晰化处理方法,并对一组户外监控图像进行了实验。

实验结果表明,提出的方法在去雾和清晰化处理方面都取得了较好的效果,图像的清晰度和可视性得到了明显提升。

5. 讨论与结论本文通过改进和优化现有的图像处理算法,提出了一种基于MATLAB的户外监控图像去雾及清晰化处理方案。

实验结果表明,该方法可以有效地去除监控图像中的雾霾和提高图像的清晰度,有助于提升户外监控图像的质量和可视性。

然而,该方法还存在一定的局限性,仍有待进一步的优化和改进。

6. 展望在未来的研究中,可以继续探索其他图像处理算法,如去雨滴、去雪花等,以进一步提高户外监控图像的质量和清晰度。

matlab盲去模糊算法 -回复

matlab盲去模糊算法 -回复

matlab盲去模糊算法-回复matlab盲去模糊算法是一种常用于图像处理领域的技术。

在拍摄或传输过程中,图像往往会受到模糊的影响,导致细节失真或不清晰。

盲去模糊算法可以有效地恢复原始图像的清晰度和细节。

本文将一步一步地介绍matlab盲去模糊算法的原理和实现过程。

I. 模糊图像的生成在进行盲去模糊算法之前,首先需要生成一个模糊图像。

可以使用matlab 内置的图像模糊函数,如imfilter或imgaussfilt,对原始图像进行模糊处理。

将生成的模糊图像保存为一个矩阵,作为算法的输入。

II. 图像模型建立在盲去模糊算法中,需要建立一个数学模型来描述图像模糊的过程。

一种常用的模型是卷积模型,即假设模糊过程可以由一个矩阵与原始图像的卷积得到。

设原始图像为f,模糊图像为g,模糊核为h,那么模糊图像可以表示为g = f ∗h,其中∗表示卷积运算。

III. 反卷积算法盲去模糊的核心在于反卷积算法的实现。

基本思想是通过估计模糊核h的逆矩阵h_inv,将模糊图像g进行逆卷积恢复得到清晰的图像f_hat。

由于逆卷积是一个不稳定的问题,常常会引入一些正则化项来增加稳定性,如Tikhonov正则化或L1正则化等。

IV. 选择正则化项正则化项是为了约束逆卷积问题的解,防止过拟合和噪声放大。

在选择正则化项时,可以根据实际情况和需求进行选择。

常用的正则化项有Tikhonov正则化、最小二乘正则化和L1正则化等。

这些正则化项可以用于优化问题的目标函数中,以获得更好的逆卷积结果。

V. 正则化参数选择正则化参数是用来平衡模型复杂度和拟合程度的重要参数。

在选择正则化参数时,可以使用交叉验证或模型选择方法来确定最佳参数。

交叉验证方法将数据集分为训练集和验证集,通过在训练集上进行模型训练并在验证集上进行测试,选择表现最好的参数。

VI. 算法实现和结果评估在matlab中,可以使用函数deconvblind来实现盲去模糊算法。

该函数的输入参数包括模糊图像、模糊核的大小等。

基于MATLAB的图像去雾处理技术

基于MATLAB的图像去雾处理技术

基于MATLAB的图像去雾处理技术基于MATLAB的图像去雾处理技术摘要:图像去雾技术是一项对雾化图像进行恢复处理来提高图像质量的重要技术。

本文基于MATLAB平台,综述了图像去雾处理的基本原理、相关算法和实现方法,并对不同算法进行了对比和性能评估。

结果表明,基于MATLAB的图像去雾技术在提高图像质量、恢复图像细节方面表现出良好的效果,具有较高的应用价值和实际意义。

1. 引言由于天气条件、环境污染等原因,图像中常常出现模糊不清、色彩失真的现象,这时候就需要对图像进行去雾处理,以提高图像的质量和信息的可读性。

图像去雾处理技术已经成为计算机视觉和图像处理领域的重要研究方向之一。

本文基于MATLAB平台,重点介绍基于物理模型和无参考图像去雾算法的原理和实现方法,并进行了详细的对比和性能评估。

2. 图像去雾原理图像去雾原理主要分为两种:物理模型和无参考图像去雾原理。

物理模型方法是基于光线传输模型,通过分析光线在大气中的散射和吸收规律,来恢复图像的细节和信息。

无参考图像去雾方法是不依赖于任何彩色中的参考图像和场景先验知识,仅仅通过分析图像本身的信息来进行去雾操作。

3. 基于物理模型的图像去雾算法基于物理模型的图像去雾算法主要包括大气光估计、雾剔除和图像恢复。

其中,大气光估计通过计算图像中最亮像素的值来估计大气光的强度。

雾剔除是通过将大气光分量从输入图像中减去,以提取出原始图像中的细节和信息。

图像恢复是使用去雾模型来恢复图像的细节和色彩,使得图像更加清晰和真实。

4. 基于无参考图像去雾算法无参考图像去雾方法是通过分析图像的统计特性和纹理信息来进行去雾处理。

其中,常用的算法包括暗通道先验、边缘保持过滤器等。

暗通道先验是基于自然图像中最暗像素通道的特点,通过估计雾浓度和大气光来进行图像去雾操作。

边缘保持过滤器是通过平滑图像中的纹理信息来减小雾的影响,从而提升图像的质量和可读性。

5. 基于MATLAB的图像去雾实现本文采用MATLAB平台进行图像去雾处理的实现,通过调用MATLAB中提供的图像处理工具箱和算法库,可以方便地实现各种图像去雾算法。

基于Matlab的图像去雾系统的设计研究

基于Matlab的图像去雾系统的设计研究
在主菜单下可进入暗通道优先算法模式、直 方图均衡化算法模式、Retinex 算法模式和对比 模式四种模式,点击“生成”或“对比”则可以生成 处理结果,点击“清除”按钮可以将界面中的图像 和按钮置为初始状态.
图 2 去雾系统主界面
在三种算法模式下,除了可以在右上角显示 去雾后的增强图像,还可以在下方显示算法产生 的对应中间结果,包括:暗通道优先处理算法的
针对雾天图像增强处理的研究已经成为计算机视觉和图像处理领域的研究热点吸引了国内外大量研究者提出了大量算法文中三种算法都能在一定程度上完成对带雾图像的清晰化处理但是在处理效果和处理速度上仍然各有差别各有优缺点暗通道优先算法的去雾效果最好但运算时间要远高于其他两种算法
2019 年 第2期
科技开发与应用
学 报(自然科学)
第 40 卷 总第 289 期
基于 Matlab 的图像去雾系统的设计研究
张道华
摘 要:为了实现雾天图像的增强,采用 Matlab 对集成直方图均衡化、Retinex、暗通道优先三种雾天图
像清晰化处理算法的去雾系统进行软件实现,不仅能够对这三种算法的最终结果和中间产物进行输出,还
能够对这三种算法的算法效率和算法结果进行直观数字的对比.实验表明,三种算法各有优缺点,实际应用
中可根据需要选取适当的算法.该系统的设计可为其他去雾算法的研究提供技术参考.
关键词:Matlab;图像增强;去雾系统;三种算法中图分类号:TP311
文献标识码:A
文章编号:1008-7974(2019)02-0001-06
DOI:10.13877/22-1284.2019.04.001
本去雾系统的构建与开发是在 Matlab 2011a 下完成的,因此,运行模块程序需在计算机上安 装 Matlab 2011a 或更高版本.打开 Matlab,在“文 件”(File)菜单栏中选择“打开…”(Open…)在文 件选择对话框中选择“.fig”文件,均可进入相应 界面的编辑窗口.

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

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

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

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

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

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

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

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

基本要求是将RGB中的亮度因素分离,将色度分解为色调和饱和度,并用角向量表示色调,如图1所示。

图1 RGB与HSI模型示意图RGB-HSI转换公式有以下5种,如表1所示:表1 RGB-HSI转换公式比较经典的是算法1的几何推导法,基本思路是先分离出亮度信息,将三维空间将为二维,在二维平面内利用解析几何的向量点积公式求出HSI模型的色调分量值。

具体过程如下:1)归一化RGB值。

2)计算H、S、I。

3)将H、S、I的值分别转换为[0,360],[0,100],[0,255]范围。

(2)对I 分量进行直方图均衡化处理。

直方图均衡化(Histogram Equalization )处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,即把给定图像的直方图分布改变成“均匀”分布直方图分布,由此扩大了像素灰度的动态范围,从而增强了图像的对比度。

直方图均衡化算法步骤为:1)给出原始图像的所有灰度级k S (k=0,1,…,L-1)。

MATLAB典型去雾算法代码..

MATLAB典型去雾算法代码..

MATLAB典型去雾算法代码一、去雾算法简介去雾算法是指利用图像处理技术,对有雾的图像进行处理,使得雾霾等干扰因素去除,从而得到更加清晰的图像。

目前,有许多不同的去雾算法,其中,传统的能量最小化模型和暗通道先验模型是常用的两种方法。

本文主要介绍这两种典型的去雾算法的MATLAB代码实现。

二、传统能量最小化模型传统能量最小化模型的基本思路是通过最小化图像中雾霾带来的能量损失,来还原原始的无雾图像。

该算法的实现步骤如下:1.获取原始图像和透射率图首先,需要获取有雾图像和对应的透射率图。

透射率图描述了经过雾霾后,光线传输的衰减程度,可以通过以下公式计算:t(x)=1-\\omega \\cdot min(R,G,B)其中,R、G、B是当前像素的三个通道的颜色值,ω是一个常数,用来控制光线的全局衰减程度。

在MATLAB中,可以使用以下代码来获取透射率图:img = imread('foggy_image.jpg');omega = 0.95;t = 1 - omega * min(img,[],3);2.计算能量函数接下来,需要计算能量函数。

传统能量最小化模型采用的是双边能量函数,其计算公式如下:E_{b}(I)=-ln(I_{d}(x))+\\lambda \\sum_{y\\in S(x)}[ln(I_{d}(x))-ln(I _{d}(y)))]^{2}其中,Id表示透射率图,S(x)表示与像素点x相邻的像素点集合,λ是常数。

在MATLAB中,可以使用以下代码来计算双边能量函数:lambda = 0.5;J = im2double(img);for i=1:3J(:,:,i) = guidedfilter(J(:,:,i), t, 10, 0.001);endJ = (img - J) ./ (1 - t);output = exp(-lambda * sum(log(max(output, 1e-20)), 3));3.求解优化问题最后,通过求解能量函数的优化问题,即可得到去雾后的图像。

Matlab在图像去噪与去模糊中的应用技巧

Matlab在图像去噪与去模糊中的应用技巧

Matlab在图像去噪与去模糊中的应用技巧引言:随着数码相机的普及与发展,人们越来越容易获取高质量的图像。

然而,在实际应用中,我们常常会遇到图像噪声和模糊的问题。

这些问题严重影响了图像的质量和可用性,因此,图像的去噪与去模糊成为了研究与应用中的重要内容。

Matlab作为一种强大的科学计算软件,提供了丰富的图像处理工具箱,为我们提供了解决这些问题的便利。

一、图像去噪技术1.1 经典去噪算法图像去噪是指通过一系列的算法和处理方法,从受到噪声干扰的图像中恢复出原始图像的过程。

经典的图像去噪算法包括均值滤波、中值滤波和高斯滤波等。

这些算法基于不同的原理,可以根据具体的需求选择合适的算法。

均值滤波是一种最简单的去噪算法,它将图像中每个像素的灰度值替换为该像素周围邻域的平均灰度值。

在Matlab中,我们可以使用函数`imfilter`来实现均值滤波。

中值滤波是基于排序的一种去噪算法,它将图像中每个像素的灰度值替换为该像素周围邻域的中值。

相比于均值滤波,中值滤波能够更好地保留图像的边缘信息。

在Matlab中,我们可以使用函数`medfilt2`来实现中值滤波。

高斯滤波是一种基于加权平均的去噪算法,它将图像中每个像素的灰度值替换为该像素周围邻域的加权平均灰度值,其中权值是一个符合高斯分布的函数。

在Matlab中,我们可以使用函数`imgaussfilt`来实现高斯滤波。

1.2 基于分析方法的去噪算法除了经典的去噪算法之外,还有一些基于分析方法的算法被广泛应用于图像去噪中。

这些算法常常利用图像的统计特性进行分析,并采取相应的数学模型和算法进行处理。

小波去噪是一种基于小波变换的去噪算法,它利用小波基函数进行频域变换,并通过选择适当的阈值对小波系数进行处理。

在Matlab中,我们可以使用函数`wdenoise`来实现小波去噪。

偏微分方程去噪算法是一种基于偏微分方程的图像去噪方法,它将图像看作是一个动态系统,并通过迭代求解偏微分方程来恢复图像的原始信息。

【图像增强系列】基于暗原色先验的去雾论文 MATLAB源码及对比效果图

【图像增强系列】基于暗原色先验的去雾论文 MATLAB源码及对比效果图
在[2]当中,Fttal 提出了一种基于独立成分分析(ICA)的实现方法。首先,局部区域的反射率被 假定为一个恒定的向量 R。因而,在该区域内所有的 J(x)拥有相同的方向向量 R,如图 2 所示。其次,通 过假定在一个局部表面投影 J(x)和透射率函数 t(x)在统计学上是相互独立的,可以用 ICA 来估算 R。再 次,由输入的彩色图像建立的 MRF 模型可应用来推断整幅图像的结果。这一实现手段是基于物理的并能 结合一幅优质的深度图来产生自然的无雾图像。不足的是,该手段因为利用了一个局部区域的统计学独 立的假设,需要在相互独立的成分之间差异很大的时候才能有显著效果。任意差异性的匮乏或者过低的 信噪比都会使得统计结果不可靠。还有,统计规律是根据图像的颜色信息得出的,因此对灰度图像无效。 在雾浓度较大时,该方法也无能为力,因为浓雾一般没有色彩,倾向于成为噪声。
最近,基于单一图像的去雾取得了很大的进展。这些方法的成功往往得益于一个强有力的先验或假 设。Tan[16]观察到无雾图像比有雾图像具有更高的对比度,他通过扩大复原图像的局部对比度来达到去 雾的效果。这样得到的结果在视觉上是很吸引人的,但实际上在光学原理上达到去雾。Fattal[2]通过假 定透射率和表面投影在局部是不相关的,估算景物的反射率,来推断景物光在空气中传播时的透射率。 Fattal 的的做法比较准确,并且能产生很好的去雾结果。然而他的方法在雾浓度较大的时候便显得无能 为力,尤其是当他的假想一旦失效的时候。
根据暗原色先验的规律,无雾自然图像的暗原色项Jdark应该是接近于0的。 Jdark(x) = min c ( min y∈Ω(x) (Jc(y))) = 0. (9)
Ac 总是正的,导致:
min c ( min y∈Ω(x) (Jc(y) Ac )) = 0 (10) 把方程(10)带入方程(8),我们可以简单地估算出透射率t: ˜t(x) = 1 − min c ( min y∈Ω(x) ( Ic(y) Ac )). (11) 事实上,minc(miny∈Ω(x)( Ic(y) Ac )) Ac 是规格化的雾图Ic(y)的暗原色。它直接提供了透射信息。如前所述,暗原色先验对天空区域不成立, 但幸好在带雾的图像中天空的颜色总是同大气光A非常接近,所以在天空区域我们有: min c ( min y∈Ω(x) ( Ic(y) Ac )) → 1, and ˜t(x) → 0, 又因为天空光来自无穷远处,其透射率趋近于 0,所以式子(11)能较好地同时处理包含或者不包含天空的 区域。我们并不需要事先把天空部分单独加以处理。

烟雾动态提取 matlab

烟雾动态提取 matlab

烟雾动态提取matlab全文共四篇示例,供读者参考第一篇示例:烟雾动态提取是一个在计算机视觉和图像处理领域常见且重要的任务。

烟雾经常出现在自然或人为灾难中,如火灾、爆炸等,烟雾的存在给图像处理和目标识别带来了很大的困难。

为了更好地理解并处理烟雾图像,烟雾动态提取技术应运而生。

在过去的几年中,烟雾动态提取已经成为了计算机视觉领域的一个研究热点,有很多研究者提出了各种各样的方法来解决这个问题。

基于Matlab的烟雾动态提取技术已经被广泛应用于各种应用中,包括安防监控、自然灾害监测等领域。

在Matlab中,有很多方法可以用来进行烟雾动态提取。

最常用的是基于背景建模和运动检测的方法。

背景建模可以提取出图像中的静态背景信息,而运动检测可以检测出图像中的移动对象,通过两者结合可以提取出烟雾区域。

在Matlab中实现烟雾动态提取的具体步骤如下:1. 读取视频帧:首先要将视频文件导入Matlab中,并且逐帧读取视频帧。

2. 背景建模:利用Matlab中的背景建模算法,如高斯混合模型(GMM)等,提取出视频帧中的静态背景信息。

3. 运动检测:运用Matlab中的光流法(Optical Flow)或运动检测算法,如帧差法等,检测出视频帧中的移动对象。

4. 烟雾提取:将运动对象与背景信息结合,通过一定的规则或算法,提取出视频帧中的烟雾区域。

5. 烟雾跟踪:对烟雾区域进行跟踪,可以利用Kalman滤波等跟踪算法,跟踪烟雾的运动轨迹。

通过以上步骤,就可以实现对烟雾动态信息的提取和跟踪。

在实际应用中,烟雾动态提取技术可以用于火灾监测、烟雾检测、自然灾害监测等领域。

在火灾监测中,可以通过实时监测烟雾信息,以及烟雾的移动轨迹,提前发现并报警火灾的发生。

烟雾动态提取技术在Matlab中的应用具有很大的潜力,可以在各种应用场景中发挥重要作用。

随着科学技术的不断进步和发展,相信烟雾动态提取技术在未来会得到更进一步的完善和应用。

希望本文能为烟雾动态提取技术的研究和应用提供一些参考和帮助。

metlab基于暗原色先验的去雾原理

metlab基于暗原色先验的去雾原理

文章标题:探究metlab基于暗原色先验的去雾原理1. 前言在当今图像处理领域,去雾技术一直是一个备受关注的研究方向。

随着人工智能技术的不断发展,metlab基于暗原色先验的去雾原理成为了近年来研究的热点之一。

本文将从深度和广度的角度对该原理进行全面评估,并撰写一篇有价值的文章,以便读者更深入地理解这一技术。

2. 什么是metlab基于暗原色先验的去雾原理我们来了解一下metlab基于暗原色先验的去雾原理是什么。

metlab是一种常用的数学软件,而暗原色先验是指在图像处理中,暗色物体在远处看起来更暗。

基于这一先验,metlab技术通过对图像进行数学建模和计算,利用图像中的暗通道先验来去除雾霾,提高图像的清晰度和质量。

3. 深度探讨metlab基于暗原色先验的去雾原理3.1 模型建立在metlab技术中,首先需要建立一个准确的数学模型来描述图像的暗通道先验。

通过分析图像的亮度、对比度、饱和度等特征,将图像进行数学建模,找到图像中暗通道的先验信息。

3.2 算法实现接下来,需要将数学模型转化为metlab算法实现。

这一过程涉及到对图像进行滤波、特征提取等操作,以便准确地获取图像的暗通道信息,并去除雾霾。

3.3 效果评估需要对去雾后的图像进行效果评估,比较去雾前后的图像质量,验证metlab基于暗原色先验的去雾原理的有效性和稳定性。

4. 广度探讨metlab基于暗原色先验的去雾原理4.1 应用领域metlab基于暗原色先验的去雾原理不仅可以应用于摄影、视频处理等领域,还可以在自动驾驶、安防监控等领域发挥重要作用。

4.2 技术局限与此我们也需要关注metlab技术的局限性,比如在特定场景下的去雾效果不佳、算法复杂度较高等问题。

5. 总结与展望通过深度和广度的探讨,我们对metlab基于暗原色先验的去雾原理有了更全面的了解。

在未来的研究中,可以进一步探索该原理在不同场景下的适用性,优化算法性能,以及提高去雾效果的稳定性和准确性。

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

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

基于MATLAB的户外监控图像去雾及清晰化处理方案的研究作者:***来源:《赤峰学院学报·自然科学版》2021年第10期摘要:隨着视频监控在各行各业的广泛应用,视频图像的清晰化处理也愈加重要。

本文针对雾霾天气下所采集的户外视频图像,构建了一个基于MATLAB的图像去雾及清晰化处理系统,将前期研究的全局直方图均衡化算法、限制对比度自适应直方图均衡算法、多尺度Retinex算法和暗通道先验算法集成到该系统中,进行大量的仿真实验,并构建图像质量评价体系对这四种算法的处理效果进行评价,进一步分析出常用的四种去雾算法所适应的不同场景。

关键词:去雾;图像处理;MATLAB;图像质量评价中图分类号:TP751 文献标识码:A 文章编号:1673-260X(2021)10-0042-05近年来,随着科学技术的迅猛发展,数字多媒体技术也日益提高,监控视频越来越广泛地应用在交通运输、安全防护、军事领域、工农业生产,甚至居家生活等各行各业,并发挥着越来越重要的作用。

但是,户外监控视频对天气条件的要求非常敏感,尤其当下空气污染所造成的雾霾天气严重,使得监控视频所采集的图像严重退化,这就限制了景象的识别,极大地影响了监控视频发挥其效用。

所以,对监控图像以及监控视频的去雾及清晰化处理的研究就显得非常必要。

1 雾霾天气下图像的去雾化研究现状在雾霾天气下,自然光受到大气中颗粒较大的气溶胶悬浮粒子的干扰发生散射,使获取的户外图像的对比度和饱和度明显下降[2,3]。

另外,由于雾霾的存在,使得退化图像中,原来较低的灰度值产生的一定程度的提高,原本较高的灰度值却被削弱,这就大大地降低了视频图像的质量。

现如今,对恶劣天气下视频图像进行清晰化处理的方法可归为两类:基于图像特征的图像增强算法和基于物理模型的图像复原算法。

图像增强算法是从提升对比度、强化细节、改善整体视觉效果等方面对图像进行清晰化处理,这类算法虽然实用性强,但因为它并不是针对图像降质的本质原因进行研究,所以处理后的图像很有可能会造成信息损失或过饱和等现象,清晰化处理效果并不理想。

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

本节主要介绍基于Retinex理论的雾霭天气图像增强及其实现。

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

1.3.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)=exp(G(x, y));步骤五:对R(x,y)做对比度增强,得到最终的结果图像。

1.3.3 多尺度Retinex 算法D Jobson 等人提出了多尺度Retinex 算法,多尺度算法的基本公式是:[][]{}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 )是Retinex 的输出,,,i R G B ∈表示3个颜色谱带,(,)F x y 是高斯滤波函数,n W 表示尺度的权重因子,N 表示使用尺度的个数,N =3,表示彩色图像,,,i R G B ∈。

N =1,表示灰度图像。

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

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

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

带色彩恢复因子C 的多尺度算法(MSRCR)]是在多个固定尺度的基础上考虑色彩不失真恢复的结果,在多尺度Retinex 算法过程中,我们通过引入一个色彩因子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 •表示的是颜色空间的映射函数。

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

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

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

1.3.4 例程精讲例程1.3.1是基于Retinex 理论进行雾霭天气增强的MATLAB 程序,读者可结合程序及注释对基于Retinex 理论进行雾霭天气增强的基本原理进行进一步分析,该程序的运行结果如图1.3-2所示。

例程1.3.1****************************************************************************************clear;close all;% 读入图像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);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);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);****************************************************************************************1.3-2 例程1.3.1的运行结果例程1.3.2是基于Retinex理论进行雾霭天气增强的MATLAB程序,读者可结合程序及注释对基于Retinex理论进行雾霭天气增强的基本原理进行进一步分析,该程序的运行结果如图1.3-3所示。

例程1.3.2**************************************************************************************** clear;close all;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);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);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分量处理的步骤进行理解。

相关文档
最新文档