没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
11页
基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf基于matlab的图像去雾算法详细讲解与实现-附matlab实现源代码.pdf
资源推荐
资源详情
资源评论
1 Rentinex理论
Retinex(视网膜“Retina”和大脑皮层“Cortex”的缩写)理论是一种建
立在科学实验和科学分析基础上的基于人类视觉系统(Human Visual System)
的图像增强理论。该算法的基本原理模型最早是由Edwin Land(埃德温•兰德)
于1971年提出的一种被称为的色彩的理论,并在颜色恒常性的基础上提出的一种
图像增强方法。Retinex 理论的基本内容是物体的颜色是由物体对长波(红)、
中波(绿)和短波(蓝)光线的反射能力决定的,而不是由反射光强度的绝对值
决定的;物体的色彩不受光照非均性的影响,具有一致性,即Retinex理论是以
色感一致性(颜色恒常性)为基础的。
根据Edwin Land提出的理论,一幅给定的图像S(x,y)分解成两幅不同的图
像:反射物体图像R(x,y)和入射光图像L(x,y),其原理示意图如图所示。
图-1 Retinex理论示意图
对于观察图像S中的每个点(x,y),用公式可以表示为:
S(x,y)=R(x,y)×L(x,y) ()
实际上,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 算法,多尺度算法的基本公式是:
R
i
(x, y)
W
n
log
I
i
(x, y)
log
F
n
(x, y) I
i
(x, y)
n1
N
(
其中,
R
是Retinex的输出,
i R,G, B
表示3个颜色谱带,
F (x, y)
是
i
x,y)
高斯滤波函数,
W
n
表示尺度的权重因子,
N
表示使用尺度的个数,
N
=3,表示
彩色图像,
i R,G, B
。
N
=1,表示灰度图像。从公式中可以看出:MSR算法的特
点是能产生包含色调再现和动态范围压缩这两个特性的输出图像。
在 MSR 算法的增强过程中,图像可能会因为增加了噪声而造成对图像中的
局部区域色彩失真,使得物体的真正颜色效果不能很好的显现出来,从而影响了
整体视觉效果。为了弥补这个缺点,一般情况下会应用带色彩恢复因子 C 的多尺
度算法(MSRCR)来解决。带色彩恢复因子 C 的多尺度算法(MSRCR)
]
是在多个固
定尺度的基础上考虑色彩不失真恢复的结果,在多尺度 Retinex 算法过程中,我
们通过引入一个色彩因子 C 来弥补由于图像局部区域对比度增强而导致图像颜
色失真的缺陷,通常情况下所引入的色彩恢复因子 C 的表达式为
R
MSRCR
i
(x, y) C
i
(x, y)R
MSR
i
(x, y)
C
i
(x, y) f [I
i
(x, y)] f [
I
i
(x, y)
N
j1
I
j
(x, y)
]
其中,
C
i
表示第个通道的色彩恢复系数,它的作用是用来调节 3 个通道颜色
的比例,
f (•)
表示的是颜色空间的映射函数。带色彩恢复的多尺度 Retinex 算
法(MSRCR)通过色彩恢复因子 C 这个系数来调整原始图像中三个颜色通道之间
的比例关系,从而通过把相对有点暗的区域的信息凸显出来,以达到消除图像色
彩失真的缺陷。处理后的图像局域对比度提高,而且它的亮度与真实的场景很相
似,图像在人们视觉感知下显得极其逼真。因此,MSR 算法具有较好的颜色再现
性、亮度恒常性以及动态范围压缩等特性。
4 例程精讲
例程 1 是基于 Retinex 理论进行雾霭天气增强的 MATLAB 程序,读者可结合
程序及注释对基于 Retinex 理论进行雾霭天气增强的基本原理进行进一步分析,
该程序的运行结果如图-2 所示。
例程 1:
clear;
close all;
% 读入图像
I=imread('');
% 取输入图像的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:N1
for j=1:M1
F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));
end
end
F = 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:N1
for j=1:M1
F(i,j)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));
end
剩余10页未读,继续阅读
资源评论
- m0_691820982024-04-24这个资源总结的也太全面了吧,内容详实,对我帮助很大。
- hjijingzijimogon2023-07-04简直是宝藏资源,实用价值很高,支持!
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功