Retinex与图像增强

Retinex是一代神算法,原理简洁优美。在之前的工作中一直心向往之,然后并没有在学习中理解运用,目前对此方法进行总结性阐述。
Retinex作为图像增强的一种方法,自己之前在ABB的时候苦于不知道对弱光照条件下的照片质量进行增强,现在看起来绝对是小问题啊。

Retinex 介绍

Retinex 是一种常用的建立在科学实验和科学分析基础上的图像增强方法,它是Edwin.H.Land于1963年提出的。Retinex是由两个单词合成的一个词语,他们分别是retina 和cortex,即视网膜和皮层。Retinex作为图像预处理的方法为NASA所采用,可谓是官方认证说明其方法的优越性,毕竟卫星图像的处理要求还是很高的。

Land的retinex模式是建立在以下三个假设之上的:
1.真实世界是无颜色的,我们所感知的颜色是光与物质的相互作用的结果。我们见到的水是无色的,但是水膜—肥皂膜却是显现五彩缤纷,那是薄膜表面光干涉的结果。
2.每一颜色区域由给定波长的红、绿、蓝三原色构成的
3.三原色决定了每个单位区域的颜色。

据此论文认为:人类感知到物体的颜色和亮度是光与物质相互作用的结果,人眼感知到物体的颜色和亮度是由物体表面的反射特
性决定的,而与投射到人眼的光谱特性没有关系。中文论文 [王  浩,等:图像增强算法综述] 对于Retinex的基础算法原理进行了非常简洁易懂的叙述,事实证明好的算法是优美的,好的解释也是非常优美的。

Retinex与图像增强_第1张图片

Retinex在长期的使用中还衍生出特色不一的众多改进型算法,在github上亦有许多版本的实现,充分体现出经典算法的经久不衰乃至于历久弥新。

  • RetinaFace:Single-stage Dense Face Localisation in the Wild
  • 大佬复现的三种Retinex算法,很好很强势:https://github.com/dongb5/Retinex
  • c++各种经典cv算法:https://github.com/BBuf/Image-processing-algorithm

增强算法

图像增强(Image Enhancement),其目的是要改善图像的视觉效果。但是个人觉得图像增强是一个大袋子,什么都可以往里面装;在这个大袋子中,低光照图像增强任务在各种图像增强任务中是较为困难的一种。目前深度学习针对图像增强各个子方向的文章非常之多,但是增强框架之大,可以说所囊括的子方向十分繁杂,仅以若干经典增强方法进行介绍。
对数Log变换/ 拉普拉斯算子/ 直方图均衡化
具体可以参考这篇博文 图像增强 Image Enhancement,讲解的非常全面透彻,非常有学习意义。

HDR定义:

亮度的测量单位名为尼特(即,1 坎德拉/m2)。例如,在晴天所测得的亮度高达 50,000 尼特。百分之九十的受访人群偏好最高为 20,000 尼特的视觉亮度水平以及数万亿种色彩。但当今的电视所提供的图像却只能达到 100 尼特和一小部分色域。

目前主流的显示器仍使用 standard dynamic range,但是当显示器试图产生亮度范围较广的场景时,SDR并不能提供给用户良好的体验。此时high dynamic range 可以计算指定场景中的光量,并使用该信息保存影像内的细节,即便在亮度变化较大的场景中,也能获得更逼真的影像。换句话说,场景的明亮部分可以非常明亮,而黑暗部分可以非常黑暗,两者中仍然可以看到细节。

就 HDR 而言,HDR10 和 Dolby Vision 是现今采用的两个重要标准。Dolby vision效果更好技术更为领先,但是由Dolby公司申请专利,收费使用。

你可能感兴趣的:(OpenCV)