IOS – OpenGL ES 设置图像黑白噪点 GPUImageLocalBinaryPatternFilter

目录

  • 一.简介
  • 二.效果演示
  • 三.源码下载
  • 四.猜你喜欢

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 特效

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage 使用

零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程

一.简介

GPUImage 共 125 个滤镜, 分为四类

1、Color adjustments : 31 filters , 颜色处理相关
2、Image processing : 40 filters , 图像处理相关.
3、Blending modes : 29 filters , 混合模式相关.
4、Visual effects : 25 filters , 视觉效果相关.

**GPUImageLocalBinaryPatternFilter 属于 GPUImage 图像处理相关,用来图像黑白化,并有大量噪点,**shader 源码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:IOS – OpenGL ES 设置图像黑白化 ,并有大量噪点GPUImageLocalBinaryPatternFilter
//@Time:2022/04/20 07:30
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
NSString *const kGPUImageLocalBinaryPatternFragmentShaderString = SHADER_STRING
(precision highp float;varying vec2 textureCoordinate;varying vec2 leftTextureCoordinate;varying vec2 rightTextureCoordinate;varying vec2 topTextureCoordinate;varying vec2 topLeftTextureCoordinate;varying vec2 topRightTextureCoordinate;varying vec2 bottomTextureCoordinate;varying vec2 bottomLeftTextureCoordinate;varying vec2 bottomRightTextureCoordinate;uniform sampler2D inputImageTexture;void main(){lowp float centerIntensity = texture2D(inputImageTexture, textureCoordinate).r;lowp float bottomLeftIntensity = texture2D(inputImageTexture, bottomLeftTextureCoordinate).r;lowp float topRightIntensity = texture2D(inputImageTexture, topRightTextureCoordinate).r;lowp float topLeftIntensity = texture2D(inputImageTexture, topLeftTextureCoordinate).r;lowp float bottomRightIntensity = texture2D(inputImageTexture, bottomRightTextureCoordinate).r;lowp float leftIntensity = texture2D(inputImageTexture, leftTextureCoordinate).r;lowp float rightIntensity = texture2D(inputImageTexture, rightTextureCoordinate).r;lowp float bottomIntensity = texture2D(inputImageTexture, bottomTextureCoordinate).r;lowp float topIntensity = texture2D(inputImageTexture, topTextureCoordinate).r;lowp float byteTally = 1.0 / 255.0 * step(centerIntensity, topRightIntensity);byteTally += 2.0 / 255.0 * step(centerIntensity, topIntensity);byteTally += 4.0 / 255.0 * step(centerIntensity, topLeftIntensity);byteTally += 8.0 / 255.0 * step(centerIntensity, leftIntensity);byteTally += 16.0 / 255.0 * step(centerIntensity, bottomLeftIntensity);byteTally += 32.0 / 255.0 * step(centerIntensity, bottomIntensity);byteTally += 64.0 / 255.0 * step(centerIntensity, bottomRightIntensity);byteTally += 128.0 / 255.0 * step(centerIntensity, rightIntensity);// TODO: Replace the above with a dot product and two vec4s// TODO: Apply step to a matrix, rather than individuallygl_FragColor = vec4(byteTally, byteTally, byteTally, 1.0);}
);
#else
NSString *const kGPUImageLocalBinaryPatternFragmentShaderString = SHADER_STRING
(varying vec2 textureCoordinate;varying vec2 leftTextureCoordinate;varying vec2 rightTextureCoordinate;varying vec2 topTextureCoordinate;varying vec2 topLeftTextureCoordinate;varying vec2 topRightTextureCoordinate;varying vec2 bottomTextureCoordinate;varying vec2 bottomLeftTextureCoordinate;varying vec2 bottomRightTextureCoordinate;uniform sampler2D inputImageTexture;void main(){float centerIntensity = texture2D(inputImageTexture, textureCoordinate).r;float bottomLeftIntensity = texture2D(inputImageTexture, bottomLeftTextureCoordinate).r;float topRightIntensity = texture2D(inputImageTexture, topRightTextureCoordinate).r;float topLeftIntensity = texture2D(inputImageTexture, topLeftTextureCoordinate).r;float bottomRightIntensity = texture2D(inputImageTexture, bottomRightTextureCoordinate).r;float leftIntensity = texture2D(inputImageTexture, leftTextureCoordinate).r;float rightIntensity = texture2D(inputImageTexture, rightTextureCoordinate).r;float bottomIntensity = texture2D(inputImageTexture, bottomTextureCoordinate).r;float topIntensity = texture2D(inputImageTexture, topTextureCoordinate).r;float byteTally = 1.0 / 255.0 * step(centerIntensity, topRightIntensity);byteTally += 2.0 / 255.0 * step(centerIntensity, topIntensity);byteTally += 4.0 / 255.0 * step(centerIntensity, topLeftIntensity);byteTally += 8.0 / 255.0 * step(centerIntensity, leftIntensity);byteTally += 16.0 / 255.0 * step(centerIntensity, bottomLeftIntensity);byteTally += 32.0 / 255.0 * step(centerIntensity, bottomIntensity);byteTally += 64.0 / 255.0 * step(centerIntensity, bottomRightIntensity);byteTally += 128.0 / 255.0 * step(centerIntensity, rightIntensity);// TODO: Replace the above with a dot product and two vec4s// TODO: Apply step to a matrix, rather than individuallygl_FragColor = vec4(byteTally, byteTally, byteTally, 1.0);}
);
#endif

二.效果演示

**使用GPUImageLocalBinaryPatternFilter **用来图像黑白化,并有大量噪点****,原图:

**GPUImageLocalBinaryPatternFilter **图像黑白化**,效果图:**

三.源码下载

OpenGL ES Demo 下载地址 : IOS – OpenGL ES 绘制线条 GPUImageLocalBinaryPatternFilter

四.猜你喜欢

  1. IOS – OPenGL ES 设置图像亮度 GPUImageBrightnessFilter
  2. IOS – OPenGL ES 调节图像曝光度 GPUImageExposureFilter
  3. IOS – OpenGL ES 调节图像对比度 GPUImageContrastFilter
  4. IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter
  5. IOS – OPenGL ES 调节图像伽马线 GPUImageGammaFilter
  6. IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter
  7. IOS – OpenGL ES 调节图像褐色 GPUImageSepiaFilter
  8. IOS – OpenGL ES 调节图像灰色 GPUImageGrayscaleFilter
  9. IOS – OpenGL ES 调节图像 RGB 通道 GPUImageRGBFilter
  10. IOS – OpenGL ES 调节图像不透明度 GPUImageOpacityFilter
  11. IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter
  12. IOS – OpenGL ES 调节图像色彩替换 GPUImageFalseColorFilter
  13. GPUImage – 色彩直方图 GPUImageHistogramFilter
  14. GPUImage – 色彩直方图 GPUImageHistogramGenerator
  15. GPUImage – 像素平均色值 GPUImageAverageColor
  16. GPUImage – 亮度平均 GPUImageLuminosity
  17. IOS – OpenGL ES 调节图像色度 GPUImageHueFilter
  18. IOS – OpenGL ES 指定颜色抠图 GPUImageChromaKeyFilter
  19. IOS – OpenGL ES 调节图像白平衡/色温 GPUImageWhiteBalanceFilter
  20. IOS – OpenGL ES 设置图像 lookup 滤镜 GPUImageLookupFilter
  21. IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter
  22. IOS – OpenGL ES 设置图像滤镜 GPUImageSoftEleganceFilter
  23. IOS – OpenGL ES 设置图像锐化 GPUImageSharpenFilter
  24. IOS – OpenGL ES 绘制十字 GPUImageCrosshairGenerator
  25. IOS – OpenGL ES 绘制线条 GPUImageLineGenerator
  26. IOS – OpenGL ES 设置图像黑白燥点 GPUImageLocalBinaryPatternFilter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

所有类型的class对象

package com.wuming.reflection;import java.lang.annotation.ElementType;public class Test04 {public static void main(String[] args) {Class c1 Object.class;//类Class c2 Comparable.class;//接口Class c3 String[].class;//一维数组Class c4 int[][].class;//二维…

人人之间“不简单”,关系图谱“有一套”

戳蓝字“CSDN云计算”关注我们哦!“通过一个人来维持亲密关系的人数最多可达到150人。”这曾经是人类学家罗宾邓巴引以为豪的科学结论之一。不过随着网络社交平台的出现以及日渐繁荣,很多人觉得“邓巴理论”在纷繁复杂的虚拟世界并不适用,如今…

IOS – OpenGL ES 桑原滤波/水粉画模糊效果 GPUImageKuwaharaFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

Docker精华问答 | 如何让一个容器连接两个网络?

如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,Docker的使用场景和范围进一步发展。今天,就让我们来看看关于Docker的深度…

IOS – OpenGL ES 黑白马赛克效果 GPUImageMosaicFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

人生苦短,Python之父要解开这个困惑

“我累了,需要很长时间的休息。”2018 年 7 月,在 PEP 572(Python 改进提案) 被接受后的第三天,由于仍然不断面对着别人的质疑,反馈意见不断袭来,让这位一手缔造新的编程语言帝国的图灵奖获得者…

IOS – OpenGL ES 卡通效果(黑色粗线描边) GPUImageToonFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云重磅 | 收购季:英伟达天价收购Mellanox;F5 6.7亿喜提Nginx;5G潮起3G潮落 中国移动耗资3000亿...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周二第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

IOS – OpenGL ES 像素化马赛克效果 GPUImagePixellateFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

波音737连续坠毁,AI要背锅?

戳蓝字“CSDN云计算”关注我们哦!作者 | 若名出品 | AI科技大本营(ID:rgznai100)2018 年 10 月 29 日,印尼狮航的波音 737MAX8 客机在起飞 13 分钟后坠海,机上 178 名乘客全部不幸遇难。2019 年 3 月 10 日&#xff0c…

IOS – OpenGL ES 同心圆像素化马赛克效果 GPUImagePolarPixel

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云计算时代运维的出路在哪?

戳蓝字“CSDN云计算”关注我们哦!作者:王洪鹏做过开发,搞过运维,又在在云计算行业折腾了几年,不说自己技术怎样、怎样……,暂且说说笔者在当前公司做云计算这几年的些许感悟,兴许可以给正在从事…

VSFTPD 服务器 3秒钟搭建

文章目录一、常用命令(Linux)二、搭建Vsftpd流程2.1. 检测系统2.2. yum安装一、常用命令(Linux) 作用命令启动sudo service vsftpd start关闭sudo service vsftpd stop重启sudo service vsftpd restart查看运行状态sudo service …

IOS – OpenGL ES 黑白网状效果 GPUImageCrosshatchFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

IEDA 配置Git_04

前提:打开idea CtrlAltS打开设置: 路径:File\seeting\version control\git

要闻君说:苹果又要新品发布啦;英伟达壕气,狂砸69亿收购Mellanox;谷歌瞄准印度小学生,推出AI学习工具;...

关注并标星星CSDN云计算每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好!偶是要闻君。话说每年的苹果新品发布会都会被列入“熬夜也要看一看”的名单中,3月将尽,今年又有什么苹果新料可爆?前瞻一把&a…

IOS – OpenGL ES 色彩丢失/模糊效果 GPUImageColorPackingFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

Git 用户名和邮箱配置_01

文章目录1. 打开 git bash here2. 用户名和邮箱配置1. 打开 git bash here 2. 用户名和邮箱配置 git config --global user.name "用户名" git config --global user.email "邮箱" git config --list

Storm精华问答 | 如何处理常见故障?

Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色,今天,就让我们看看关于Storm的精华问答吧。1Q:发布topology到远程集群时,出现AlreadyAliveException(msg: xxx is al…

IOS – OpenGL ES 图像晕影移动 GPUImageVignetteFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…