• GPUImage滤镜之锐化


      应用锐化工具可以快速聚焦模糊边缘,提高图像中某一部位的清晰度或者焦距程度,使图像特定区域的色彩更加鲜明。 在应用锐化工具时,若勾选器选项栏中的“对所有图层取样”复选框,则可对所有可见图层中的图像进行锐化。但一定要适度。锐化不是万能的,很容易使东西不真实。

      在GPUImage中使用GPUImageSharpenFilter类来实现图像的锐化效果

      片段着色

     precision highp float;
     
     varying highp vec2 textureCoordinate;
     varying highp vec2 leftTextureCoordinate;
     varying highp vec2 rightTextureCoordinate; 
     varying highp vec2 topTextureCoordinate;
     varying highp vec2 bottomTextureCoordinate;
     
     varying highp float centerMultiplier;
     varying highp float edgeMultiplier;
    
     uniform sampler2D inputImageTexture;
     
     void main()
     {
         mediump vec3 textureColor = texture2D(inputImageTexture, textureCoordinate).rgb;
         mediump vec3 leftTextureColor = texture2D(inputImageTexture, leftTextureCoordinate).rgb;
         mediump vec3 rightTextureColor = texture2D(inputImageTexture, rightTextureCoordinate).rgb;
         mediump vec3 topTextureColor = texture2D(inputImageTexture, topTextureCoordinate).rgb;
         mediump vec3 bottomTextureColor = texture2D(inputImageTexture, bottomTextureCoordinate).rgb;
    
         gl_FragColor = vec4((textureColor * centerMultiplier - (leftTextureColor * edgeMultiplier + rightTextureColor * edgeMultiplier + topTextureColor * edgeMultiplier + bottomTextureColor * edgeMultiplier)), texture2D(inputImageTexture, bottomTextureCoordinate).w);
     }

       具体应用

      

    + (UIImage *)changeValueForSharpenilter:(float)value image:(UIImage *)image
    {
        GPUImageSharpenFilter *filter = [[GPUImageSharpenFilter alloc] init];
        filter.sharpness = value;
        [filter forceProcessingAtSize:image.size];
        GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image];
        [pic addTarget:filter];
        
        [pic processImage];
        [filter useNextFrameForImageCapture];
        return [filter imageFromCurrentFramebuffer];
    }

      效果

      

  • 相关阅读:
    Android Studio复制项目作为一个新的工程
    7-(基础入门篇)关于STM32底层程序使用说明
    6-(基础入门篇)学会编译lua固件,固件的合成
    5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)
    STM32嵌入LUA开发(控制小灯闪耀)
    1-添加自己的Lua执行函数(ESP8266-SDK开发(lua版本))
    android 权限动态申请
    Android应用更新-自动检测版本及自动升级
    Android中AsyncTask的使用
    关于TCP和MQTT之间的转换
  • 原文地址:https://www.cnblogs.com/salam/p/5120032.html
Copyright © 2020-2023  润新知