MATLAB典型去雾算法代码_第1页
MATLAB典型去雾算法代码_第2页
MATLAB典型去雾算法代码_第3页
MATLAB典型去雾算法代码_第4页
MATLAB典型去雾算法代码_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本节主要介绍基于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 N inin n R x yWI x yF x yI x y 其中 是Retinex的输出 表示3个颜色谱带 是 i R x y iR G B F x y 高斯滤波函数 表示尺度的权重因子 表示使用尺度的个数 3 表 nW NN 示彩色图像 1 表示灰度图像 从公式中可以看出 MSR算 iR G B N 法的特点是能产生包含色调再现和动态范围压缩这两个特性的输出图像 在 MSR 算法的增强过程中 图像可能会因为增加了噪声而造成对图像中 的局部区域色彩失真 使得物体的真正颜色效果不能很好的显现出来 从而影 响了整体视觉效果 为了弥补这个缺点 一般情况下会应用带色彩恢复因子 C 的多尺度算法 MSRCR 来解决 带色彩恢复因子 C 的多尺度算法 MSRCR 是在多个固定尺度的基础上考虑色彩不失真恢复的结果 在多尺度 Retinex 算 法过程中 我们通过引入一个色彩因子 C 来弥补由于图像局部区域对比度增强 而导致图像颜色失真的缺陷 通常情况下所引入的色彩恢复因子 C 的表达式为 ii MSRCRiMSR Rx yC x y Rx y 1 i iiN j j I x y C x yf I x yf Ix y 其中 表示第个通道的色彩恢复系数 它的作用是用来调节 3 个通道颜 i C 色的比例 表示的是颜色空间的映射函数 带色彩恢复的多尺度 Retinex f 算法 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 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 end F 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 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 对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 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 Rr0 Rlog DRlog 形成高斯滤波函数 sigma 256 sigma 256 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 Rr1 Rlog DRlog 形成高斯滤波函数 sigma 512 sigma 512 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 Rr2 Rlog DRlog 对上述三次增强得到的图像取均值作为最终增强的图像 Rr 1 3 Rr0 Rr1 Rr2 定义色彩恢复因子C a 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分量处理的步骤进行理解 G0 double G Glog log G0 1 Gfft2 fft2 G0 sigma 128 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 DG0 Gfft2 Ffft DG ifft2 DG0 DGdouble double DG DGlog log DGdouble 1 Gg0 Glog DGlog sigma 256 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 DG0 Gfft2 Ffft DG ifft2 DG0 DGdouble double DG DGlog log DGdouble 1 Gg1 Glog DGlog sigma 512 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 DG0 Gfft2 Ffft DG ifft2 DG0 DGdouble double DG DGlog log DGdouble 1 Gg2 Glog DGlog Gg 1 3 Gg0 Gg1 Gg2 a 125 II imadd R0 G0 II imadd II B0 Ir immultiply R0 a C imdivide Ir II C log C 1 Gg immultiply C Gg EXPGg exp Gg MIN min min EXPGg MAX max max EXPGg EXPGg EXPGg MIN MAX MIN EXPGg adapthisteq EXPGg 对B分量进行处理 步骤与对R分量处理的步骤相同 请读者仿照R分量处理的步骤进行理解 N1 M1 size B B0 double B Blog log B0 1 Bfft2 fft2 B0 sigma 128 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 DB0 Bfft2 Ffft DB ifft2 DB0 DBdouble double DB DBlog log DBdouble 1 Bb0 Blog DBlog sigma 256 F zeros N1 M1 for i 1 N1 for j 1 M1 F i j ex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论