zoukankan      html  css  js  c++  java
  • 一种极快速去模糊效应图像细节增强及其应用

             本文主要对比了两篇重要的参考文献与自己实现的一种图像细节增强技术的实际处理效果,同时简要叙述了笔者算法思路。


             图像的细节增强有很多典型的应用,例如暴风影音的左眼功能能让图像看起来更清晰一点。笔者通过实际测试发现,暴风使用的可能是简单的锐化加上图像的对比度饱和度等调节功能,因为对于视频后处理不太可能采用很复杂的算法。图像处理的很多算法都可以直接用于视频后处理,但是,有一个前提:就是算法不能太复杂,否则实时性不太可能满足。


             笔者开发的这种细节增强技术也许比暴风的左眼增强更好。具体对比结果如下:


     1. 去模糊效应


         去模糊是图像处理的经典课题,其本质是盲反卷积问题。我并不打算描述去模糊的相关原理。这里主要对比的文献是香港中文大学的:Jiaya Jia   Two-Phase Kernel Estimation for Robust Motion Deblurring。先看实际效果:

     原图:


      Jiaya 的处理结果:


     笔者算法处理结果

    原图


       Jiaya 的处理结果:


     笔者算法处理结果

      原图:


       Jiaya 的处理结果:


    笔者算法处理结果:


    原图:


       Jiaya 的处理结果:


    笔者算法处理结果:





    从对比结果来看,笔者的算法基本上还是能够赶得上Jiaya 的处理效果的。笔者算法的优略如下:

    优势:笔者的算法速度超级快,无需GPU加速。处理一张720P的彩色图像需要的时间大约在50ms,占用额外内存仅仅为1张图片的大小。

               而现有的去模糊算法必须要有GPU的情况下都需要数秒钟的时间。

    不足:笔者的算法只针对高斯模糊有效,而且高斯模糊的PSF半径比较小。最根本的原因在于本人的算法思路是细节增强,而非真正的

               去模糊算法。


    2. 图像缩放


           既然笔者的算法仅仅对小的高斯模糊比较有效,那么笔者算法的另外一个有效的应用是图像缩放。采用经典的cubic插值算法得到的图像有点模糊,可以将笔者的算法用于cubic算法之后的后处理以增强图像细节。


          这里比较的依然是香港中文大学Jiaya 等人的一篇文献:Fast Image/Video Upsampling

          在这篇文献中,作者用非盲反卷积的思路对cubic插值后的图像进行去模糊,模糊核被假定为固定的高斯核。经过若干次的迭代可以获得相当不错的效果。关于这篇文献更多的信息可以参考笔者的翻译稿,下载链接如下:

     http://download.csdn.net/detail/celerychen2009/5493723


           然而,Jiaya的算法仍然需要GPU的参与,否则依然很慢。在我的机器上【I3,CPU主频2.1G】处理720p的图像要1分钟之多。而笔者的算法用于cubic之后的后处理具有明显的优势,不用GPU参与也能实时。


    原图:


    Jiaya的处理效果:                                                  笔者算法的处理效果:

    原图:


    Jiaya的处理效果:                                                  笔者算法处理效果:                                    


    原图:


    Jiaya的处理效果:                                                 笔者算法处理效果:



    3. 算法思路

             
             笔者的算法思路其实比较简单,如果对PS比较了解,应该会知道PS有锐化这个功能,比较实用的例如USM锐化。如何得到图像的细节,典型的可以采用高通滤波。笔者在得到图像的细节之后,专门针对图像的细节做了一些预处理,然后把图像的细节和原始图像叠加在一起。有时候,思路越简单,方法越有效。




  • 相关阅读:
    33.数组声明方式(var构造函数) 、检测数组类型、数组的属性(封装好的就一个length)、数组的方法
    31.this指向(写出调用链,找最近对象) this的默认绑定 隐式绑定 显示绑定(call(绑定对象) apply(绑定对象) 当括号内没放绑定对象的时候恢复默认绑定) bind
    31.
    30.函数作用域链 (GO AO 也叫词法作用域链)、 调用栈、调用栈涉及this绑定
    29.包装类(构造函数) 包装类作用及调用栈
    916. Word Subsets
    246. Strobogrammatic Number
    445. Add Two Numbers II
    2. Add Two Numbers
    341. Flatten Nested List Iterator
  • 原文地址:https://www.cnblogs.com/celerychen/p/3588192.html
Copyright © 2011-2022 走看看