opengles图像处理之图片锐化处理
实现原理见 http://blog.csdn.NET/hb707934728/article/details/53100334
实现锐化处理内核
0 | -1 | 0 |
-1 | 5 | -1 |
0 | -1 | 0 |
效果图
片元shader实现
precision mediump float;//给出默认的浮点精度
varying vec2 vTextureCoord;//从顶点着色器传递过来的纹理坐标
uniform sampler2D sTexture;//纹理内容数据
void main() { //给出卷积内核中各个元素对应像素相对于待处理像素的纹理坐标偏移量vec2 offset0=vec2(-1.0,-1.0); vec2 offset1=vec2(0.0,-1.0); vec2 offset2=vec2(1.0,-1.0);vec2 offset3=vec2(-1.0,0.0); vec2 offset4=vec2(0.0,0.0); vec2 offset5=vec2(1.0,0.0);vec2 offset6=vec2(-1.0,1.0); vec2 offset7=vec2(0.0,1.0); vec2 offset8=vec2(1.0,1.0); const float scaleFactor =0.6;//给出最终求和时的加权因子(为调整亮度)//卷积内核中各个位置的值float kernelValue0 = 0.0; float kernelValue1 = -1.0; float kernelValue2 = 0.0;float kernelValue3 = -1.0; float kernelValue4 = 5.0; float kernelValue5 = -1.0;float kernelValue6 = 0.0; float kernelValue7 = -1.0; float kernelValue8 = 0.0;vec4 sum;//最终的颜色和//获取卷积内核中各个元素对应像素的颜色值vec4 cTemp0,cTemp1,cTemp2,cTemp3,cTemp4,cTemp5,cTemp6,cTemp7,cTemp8; cTemp0=texture2D(sTexture, vTextureCoord.st + offset0.xy/512.0);cTemp1=texture2D(sTexture, vTextureCoord.st + offset1.xy/512.0);cTemp2=texture2D(sTexture, vTextureCoord.st + offset2.xy/512.0);cTemp3=texture2D(sTexture, vTextureCoord.st + offset3.xy/512.0);cTemp4=texture2D(sTexture, vTextureCoord.st + offset4.xy/512.0);cTemp5=texture2D(sTexture, vTextureCoord.st + offset5.xy/512.0);cTemp6=texture2D(sTexture, vTextureCoord.st + offset6.xy/512.0);cTemp7=texture2D(sTexture, vTextureCoord.st + offset7.xy/512.0);cTemp8=texture2D(sTexture, vTextureCoord.st + offset8.xy/512.0);//颜色求和sum =kernelValue0*cTemp0+kernelValue1*cTemp1+kernelValue2*cTemp2+kernelValue3*cTemp3+kernelValue4*cTemp4+kernelValue5*cTemp5+kernelValue6*cTemp6+kernelValue7*cTemp7+kernelValue8*cTemp8; gl_FragColor = sum * scaleFactor; //进行亮度加权后将最终颜色传递给管线
}
opengles图像处理之图片锐化处理相关推荐
- python识别图片中数字_Python图像处理之图片验证码识别
在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract软件 ...
- python图像识别系统_Python图像处理之图片文字识别功能(OCR)
OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...
- python文字识别时、当文字不清晰时怎么处理_Python图像处理之图片文字识别功能(OCR)...
OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...
- python怎么打印图片_Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头...
一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的python科学计算库 ...
- 常用的图像处理标准图片(Lena、cameraman等)获取
常用的图像处理标准图片(Lena.cameraman等)获取地址 点击此处-->常用的图像处理标准图片
- 【小程序】小程序图像处理:图片配色分析
背景 小程序的canvas是微信基于原生组件自行封装的,因此接口跟web的canvas有不少区别,早期更是没有支持像素级的处理能力. 在18年初的小程序基础库1.9.0版本更新中,出现了wx.canv ...
- 数字图像处理教程图片素材及源码下载
https://www.cnblogs.com/Undo-self-blog/p/8423851.html https://www.linuxidc.com/Linux/2015-08/121400. ...
- 【已更新至GitHub】数字图像处理常用图片【免费】【不失效】
这几天为毕设做准备学习数字图像处理,导师让我去网上下载一些常用图片联系一下,结果都是要50分 30分?!! 这种基础学习必备的图片本来是开源的,非得弄成收费的,就像很多github开源的代码在CSDN ...
- python文字识别算法_Python图像处理之图片文字识别(OCR)
OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...
最新文章
- python虚拟环境搭建mac_mac搭建python virtualenv虚拟环境并使用 - 李金龙
- vue点击按钮切换显示不同内容_邂逅Vue
- TSD(Thread Specific Data)线程专有数据
- linux查找所有字文件,Linux查找含有某字符串的所有文件
- PHP-RSA加密跨域通讯实战
- QEMU, KVM, QEMU-KVM 和 Goldfish
- java多线程编程核心技术 2
- 不加群就可以提取QQ群成员
- xml格式转json
- 一线明星纷纷失业,数据告诉你今年的演员有多难
- 什么是标签?跟数据中台有什么关系?
- C#获取屏幕的分辨率
- 婚姻中受伤的为什么总是女人
- 概述纵横制电话交换机
- ps把白底图片改为透明
- 2022年vue项目使用go.js 2.1去水印
- 构建属于自己的 jre Docker 镜像
- 《性格色彩》测试加分析
- linux系统重启网卡命令
- lemke算法 matlab,lemke是什么意思
热门文章
- KSM(Kernel samepage merging)
- 读书笔记-《wxPython in Action》一
- [CIKM 2019]Balance in Signed Bipartite Networks
- ubuntu16.04中安装Kdevelop和使用技巧
- 电脑ping手机该怎么玩(很多网友都说电脑ping不通手机)?
- 解决SAP业务问题的思考——逆向思维
- BRAT的安装、配置、标注操作
- 腾讯云cos html,腾讯云对象存储(COS)插件安装设置图文教程
- java system.nanotime_java - System.nanoTime()完全没用吗?
- 同源策略是什么,有何作用