MATLAB retinex的图像去雾系统
本文主要介绍基于Retinex理论的雾霭天气图像增强及其实现。并通过编写两个程序来实现图像的去雾功能。
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 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)=exp(G(x, y));
步骤五:对R(x,y)做对比度增强,得到最终的结果图像。
3 多尺度Retinex算法
D Jobson等人提出了多尺度Retinex算法,多尺度算法的基本公式是:
其中,
是Retinex的输出,
表示3个颜色谱带,
是高斯滤波函数,
表示尺度的权重因子,
表示使用尺度的个数,
=3,表示彩色图像,
。
=1,表示灰度图像。从公式中可以看出:MSR算法的特点是能产生包含色调再现和动态范围压缩这两个特性的输出图像。
在MSR算法的增强过程中,图像可能会因为增加了噪声而造成对图像中的局部区域色彩失真,使得物体的真正颜色效果不能很好的显现出来,从而影响了整体视觉效果。为了弥补这个缺点,一般情况下会应用带色彩恢复因子C的多尺度算法(MSRCR)来解决。带色彩恢复因子C的多尺度算法(MSRCR)]是在多个固定尺度的基础上考虑色彩不失真恢复的结果,在多尺度Retinex算法过程中,我们通过引入一个色彩因子C来弥补由于图像局部区域对比度增强而导致图像颜色失