前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 Retinex 的几种图像增强算法总结

基于 Retinex 的几种图像增强算法总结

作者头像
caoqi95
发布2019-05-08 11:04:10
6.5K0
发布2019-05-08 11:04:10
举报

也是上上周布置的作业,主要是比较不同 Retinex 算法实现的结果。同样也是需要自己看论文并实现算法,这点应该是选这门课最大的优点了,也是硕士需要掌握的基本技能。

今天在课上,还以为会被批评,没想到被夸奖了一翻,心里美滋滋。授课教授说我写的 report 很清晰明了,可以清晰地知道哪张结果图片对应哪个算法,还问我是不是写过很多论文。哈哈,论文是没写过的,倒是看过不少,知道非英语母语读者的痛点在哪里以及一些基本的套路。

Retinex 理论

Retinex 这个词由 Retina 和 Cortex 两个单词组成。在 Retinex 理论中,物体的颜色是由物体对长波、中波和短波光线的反射能力决定的,而不是由反射光强度的绝对值决定的,并且物体的色彩不受光照非均性的影响,具有一致性。

在 Retinex 理论中,人眼得到的图像数据取决于入射光和物体表面对入射光的反射。如上图所示,I(x,y) 是我们最终得到的图像数据,先是由入射光照射,然后经由物体反射进入成像系统,最终形成我们所看到的图像。该过程可以用公式表示:

其中,I(x,y)代表被观察或照相机接收到的图像信号;L(x,y) 代表环境光的照射分量 ;R(x,y) 表示携带图像细节信息的目标物体的反射分量。

将该式子两边取对数,可以得到物体原本的信息:

在图像处理领域,常将该理论用于图像增强,为了得到成像更好的图片。这时,R(x,y) 表示为图像增强得到后的图像,I(x,y) 为原始的图像。在处理过程中 L(x,y) 常为 I(x,y) 高通滤波之后的结果,也可以用其他滤波的方法,比如中值滤波,均值滤波等等。

SSR 算法

SSR (Singal Scale Retinex),即单尺度视网膜算法是 Retinex 算法中最基础的一个算法。运用的就是上面的方法,具体步骤如下:

  • 输入原始图像 I(x,y) 和滤波的半径范围 sigma;
  • 计算原始图像 I(x,y) 高斯滤波后的结果,得到 L(x,y);
  • 按照公式计算,得到 Log[R(x,y)];
  • 将得到的结果量化为 [0, 255] 范围的像素值,然后输出结果图像。

需要注意的是,最后一步量化的过程中,并不是将 Log[R(x,y)] 进行 Exp 化得到 R(x,y) 的结果,而是直接将 Log[R(x,y)] 的结果直接用如下公式进行量化:

将过程整合在一起就是如下过程:

MSR 算法

MSR (Multi-Scale Retinex),即多尺度视网膜算法是在 SSR 算法的基础上提出的,采用多个不同的 sigma 值,然后将最后得到的不同结果进行加权取值,公式如下所示:

其中 n 是尺度的数量, σ= {σ1,σ2,...,σn} 是高斯模糊系数的向量, wk 是与第 k 个尺度相关的权重,其中 w1 + w2 + ... + wn = 1

MSRCR 算法

MSRCR 算法是一种改进 MSR 的算法,全称是 Multi-Scale Retinex with Color Restoration,即带色彩恢复的多尺度视网膜增强算法。

就是在 MSR 的基础上,加上了色彩恢复的功能。详细的内容及公式可以查看论文 《A multiscale retinex for bridging the gap between color images and the human observation of scenes》。

作业要求

任务 1

在论文中随机选择两个 MSR 算法,实现并比较。

任务 2
  • sigma = 16,32,64 时,比较不同高斯滤波的性能
    1. 读取并对图像进行二维高斯滤波:
    • input image - X; 高斯滤波后的图片结果 - Y; 令 Z = X/Y
    • 求 Z 的均值(mean)和标准差(sigma)
    • 以均值为中心,取 -2sigma 到 2sigma 范围内的值,然后将其扩展到 [0,255] 范围并输出图像
    1. 读取并对图像进行二维高斯滤波:
    • input image - X; 高斯滤波后的图片结果 - Y; 令 Z = logX - logY
    • 求 Z 的均值(mean)和标准差(sigma)
    • 以均值为中心,取 -2sigma 到 2sigma 范围内的值,然后将其扩展到 [0,255] 范围并输出图像

结果比较

一些标注

在比较结果之前,先对一些标注信息进行说明,这样会有助于后续的结果对比。

  • SSR : Single Scale Retinex
  • SSR - DIV : Single Scale Retin e t ( Z = X/Y )
  • SSR - LOG : Single Scale Retinex (logZ = logX – logY)
  • MSR : Multi - Scale Retinex
  • MSRCR : Multi - Scale Retinex with Color Restoration
实验结果
不同 sigma 取值的对比

在 SSR 图像组、SSR- DIV 图像组和 SSR- LOG 图像组中,我们可以看到当 sigma 值不大的时候(16-128),增强后的图像亮度比原图像要暗。而且图像的亮度随着 sigma 值的增加而增加。当 sigma=256 时,图像的亮度将与原始图像相似。

不同 SSR 算法对比

通过比较不同的 SSR 方法,可以发现当 sigma 值在 16-128 之间时,SSR-DIV 的结果亮度最暗,而 SSR-LOG 的结果稍暗,但结果比 SSR 的结果更蓝。对于 SSR 和 SSR-LOG 算法,sigma 选择 64 或 128 是当前实验图片的最佳结果。对于 SSR-DIV 的结果,选择 256 是最佳选择。

不同 MSR 算法对比

通过对 MSR 算法和 SSR 算法的比较,可以发现,MSR 和 MSRCR 算法的结果一般要比 SSR 算法的结果更亮,因为多重尺度(多个 sigma 的取值)的组合。对两种 MSR 算法的结果进行比较,可以发现,结果没有太大的差别。而且在这些组合中,64-128-256 的组合结果是最优的。不仅图像变得更清晰,而且颜色也变得更加明亮。此外,对于 MSRCR 算法来说,太多的参数是一个负担(实验中只采用了论文推荐的经验参数,而没有尝试更多的参数比较)。

参考

[1]. http://www.cnblogs.com/Imageshop/archive/2013/04/17/3026881.html

[2]. http://www.cnblogs.com/Imageshop/p/3810402.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Retinex 理论
  • SSR 算法
  • MSR 算法
  • MSRCR 算法
  • 作业要求
    • 任务 1
      • 任务 2
      • 结果比较
        • 一些标注
          • 实验结果
            • 不同 sigma 取值的对比
              • 不同 SSR 算法对比
                • 不同 MSR 算法对比
                • 参考
                相关产品与服务
                云数据库 Redis
                腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档