局部拉普拉斯滤波(local laplican filter)

写之前

任何事情都不是绝对的。有时候也不能相信权威,权威也可能是错的。大胆的尝试和坚持不懈也许就是成功的关键。

拉普拉斯金字塔是将图像分解成多个尺度的常用方法,在图像分析中有着广泛的应用。然而,由于拉普拉斯金字塔是用空间不变的高斯核构造的,因此人们普遍认为拉普拉斯金字塔不能很好地表示边缘,并且不适合边缘感知操作,如边缘保持平滑和色调映射。为了解决这些问题,人们提出了许多可供选择的技术和表示方法,如各向异性扩散、邻域滤波和特殊的小波基。虽然这些方法已经证明有效,但它们的代价是额外的复杂性,通常伴随着较高的计算成本或需要处理生成的结果。但是,来自于adobe的大神偏偏杠上了,证明了可以用拉普拉斯算法做图像增强和色调映射,而且效果出奇的好。

这篇文章使用标准拉普拉斯金字塔的最先进的边缘感知处理。用一个简单的像素阈值来描述边缘,这个阈值允许区分大尺度边缘和小尺度细节。在此基础上,提出了一组图像滤波器来实现边缘保持平滑、细节增强、色调映射和逆色调映射。这个方法的优点是它的简单性和灵活性,只依赖于简单的点非线性和小高斯卷积;不需要优化或后处理。同时,在产生高质量的处理结果的时候,不降低边缘强度或引入光晕。

所以这个方法很适合做HDR图像的处理。

参考文献

Paris S, Hasinoff S W, Kautz J. Local Laplacian filters: edge-aware image processing with a Laplacian pyramid[J]. Communications of the ACM, 2015, 58(3): 81-91.

原文阅读起来确实有些难懂,尤其是文中的那些关键配图,本文会做详细的说明。

Matlab 代码,演示PPT及原文可以公众号内回复索取消息领取。

第一部分 原理分析

我们用一个简单的例子来说明图像增强。从下图中可以明显的看到,在增强图像的过程中,如果处理不好,就会在图像的强边缘附近产生明显的瑕疵,而且增强的效果也不协调。这也就是本文需要解决的问题。

第二部分 如何实现

对于第一部分的图,每一个粗壮的十字星可以看作是一个离散的像素点。那么在增强的时候,有如下的原理图。黄色的圆圈是单个的像素,它位于强边缘的左侧部分,我们只关注此像素的拉普拉斯系数的应用。那么为什么不管右边的像素呢?这是因为对于每一个局部而言,如果只处理其左侧,那么右边的部分就是另外一个局部的左侧,同样会被算法处理。Sigma是用户定义的用于区分细节的阈值。中间的坐标系有点难理解,后面会讲到。

 

同样的,对于sigma之外的部分,则是对比度的增强。比如说,原来的对比度是10(假设相邻两个像素的差值),增强的结果就是20。对于图像而言,可以用下面的图来说明。

前两个图自然不用多说。第三个图是对图像在[g0-sigma, g0+sigma]之外做色调映射,第四个是对图像在[g0-sigma, g0+sigma]之外做反色调映射。最后一个图是对图像在[g0-sigma, g0+sigma]之外做色调映射,在[g0-sigma, g0+sigma]之内做细节增强。

第三部分 效果展示

 

发布了77 篇原创文章 · 获赞 150 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/Aoulun/article/details/102829470