高斯模糊(Android应用)

作者: Conan_Lee | 来源:发表于2017-07-25 23:42 被阅读401次

    项目地址,欢迎star

    https://github.com/ly85206559/recursiveBlur

    对图像模糊的算法主要分为两种
    1.均值模糊(Box blur)
    2.高斯模糊

    这里使用了高斯模糊算法

    高斯模糊的优化算法也有很多
    这里的优化主要有两方面
    1.针对传统的高斯模糊进行降维计算(这里主要是基于二维高斯模糊可以转换成两个一维高斯模糊计算)
    2.采用递归高斯模糊(这种算法与模糊半径无关,所以时间复杂度紧与图片像素有关)

    这里实现了这两种模糊算法,并且比较了这两种模糊算法的耗时,模糊效果

    上图:分别模糊半径为3,10,25,对比耗时(图片的分辨率是216*284)

    模糊半径为3.jpg 模糊半径为10.jpg 模糊半径为25.jpg

    可以看出递归高斯模糊的耗时跟模糊半径无关,耗时也很短,不过看模糊效果跟传统高斯模糊还是有点区别,项目中使用也比较简单

    //传统高斯模糊调用方法
    public static Bitmap gaussBlurNatively(Bitmap original, int radius, boolean canReuseInBitmap)
    //递归高斯模糊调用方法
    public static Bitmap recursiveBlurNatively(Bitmap original, int radius, boolean canReuseInBitmap)
    

    JNI部分的代码是用的C,至于高斯模糊和递归高斯模糊的具体公式,网上有很多参考,这里主要是对android的一层封装和算法的一些优化

    相关文章

      网友评论

      • 辣公公:Google 已经提供了这些
        Conan_Lee:@辣公公 你是指RenderScript吗?这里其实主要是温习了下高斯模糊和递归高斯模糊的算法:smile:

      本文标题:高斯模糊(Android应用)

      本文链接:https://www.haomeiwen.com/subject/rabpkxtx.html