canvas 滤镜之灰度效果

canvas像素级操作实现滤镜之灰度效果、怀旧滤镜 原理:按照.299 * r + .587 * g + .114 * b来计算,然后将值赋给rgb分量 代码: 阅读详情


               实现灰度效果一般有两种方法:

        1,使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。基本公式如下:Gray = R*0.299 + G*0.587 + B*0.114

        2.根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。


       以上这两种方法是基于两种不同的颜色空间,就其本质是一样的(需要进行颜色空间的转换)。接下来实现第一种方法,如果严格按照 Gray = R*0.299 + G*0.587 + B*0.114 这个基于小数点系数的公式计算得到的精度不会很高(由于应用要求不高),具体高精度的可以google


这是我前期写的代码,冗余过多   


<font size="4"><span style="color:#FF6666;"><span style="font-family:KaiTi_GB2312;color:#000000;">//灰度效果:(去色)
	function grayFilter(imageData) {
		var data = imageData.data,
			width = imageData.width;
		for (var i = 0; i < data.length - 4; i += 4) {
                       //遍历各像素分量	.299 * r + .587 * g + .114 * b;
			<span style="color:#FF0000;">var tmp = data[i] * 0.299 + data[i + 1] * 0.587 + data[i + 2] * 0.144;</span>

			data[i] = data[i + 1] = data[i + 2] = tmp;
		}
		return imageData;
	}</span></span></font>


原图:(我之前用马赛克效果处理过了)


灰度图:





     今天就一个灰度效果吧,其实这些效果大部分我觉得如果你不是想很深入的研究计算机图形学的话,只需要知道计算公式即可。后面的例子就直接上代码和效果图





canvas图像处理——实现滤镜效果 实现滤镜效果 点击按钮出现不同滤镜效果 首先,我们分析滤镜的具体,主要就是对图片的每个具体像素进行处理,先拿到像素,处理后再将像素放回去。 1.怎样拿到像素 通过getImageData可以拿到图片的imageData,imageData包含3个内容:width,height... 阅读详情

相关推荐

openlayers中巧用canvas滤镜,自由切换你的地图风格

前言 高德地图、百度地图等等图商现在都提供一些自定义地图风格,用户可以自己设计地图样式,这样使得地图使用灵活了很多。 百度地图个性化编辑平台 高德地图自定义地图 从openlayers3开始,其底层渲染从SVG切换到了canvas,据说渲染效率提高了不少。在canvas上,我们可以实现很多比较炫酷的可视化操作,如之前的空气质量态势图、动态风场等等。 ...

此爱如少年 6116

基于canvas的图片灰度处理

图像灰度 首先需要在彩色照片上进行操作。在canvas上把彩色照片操作为灰度照片,其实就是对其像素点的操作 先贴代码,再做讲解 ctx.drawImage(imgs, 0, 0,width,height); var pixels = ctx.getImageData(0,0,width,height); var pixeldata = pixels.data; for(var i=0...

everccnight的博客 1万+

Canvas滤镜 灰度 浮雕 效果

纯JavaScript实现HTML5 Canvas六种特效滤镜 小试牛刀,实现了六款简单常见HTML5 Canvas特效滤镜,并且封装成一个纯 JavaScript可调用的API文件。

canvas 图片灰度算法

canvas 图片灰度算法 平均值 Gray = ( Red + Green + Blue ) / 3 按人眼对三原色的感知度 : 绿 》 红 》 蓝 Gray = ( Red * 0.3 + Green * 0.59 + Blue * 0,11 ) &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; ...

齐枫的博客 1091

数据分析面试八股文--技能软件类

数据分析的“三板斧"指的是三个在 Python 数据分析领域广泛使用的库:NumPy,Pandas,和 Matplotlib。这三个库提供了处理和分析数据的强大工具。NumPyNumPy(Numerical Python)是一个开源 Python 库,用于支持大型多维数组和矩阵运算。此外,NumPy 还提供了大量的数学函数来操作这些数组。np.array():创建数组np.arange():返回一个有终点和起点的固定步长的排列。

zfyzfw的博客 4376

树莓派CM4 PCIe扩展方案与ASM1184e芯片应用

PCIe(Peripheral Component Interconnect Express)是计算机硬件中重要的高速串行总线标准,广泛应用于存储、网络等设备连接。其核心原理是通过差分信号实现高带宽传输,PCIe Gen2 x1的理论带宽可达5Gbps。在嵌入式开发中,PCIe扩展技术能有效解决单板计算机接口不足的问题,特别适合树莓派等微型平台。ASMedia ASM1184e作为PCIe交换芯片,可将单个接口扩展为多个,支持热插拔且免驱动,极大提升了工程灵活性。通过PCIe交换机方案,开发者能在树莓派CM

weixin_42602368的博客 421

基于HTML5 Canvas实现黑白滤镜

getImageData 和 putImageData 是 HTML5  Canvas两个比较常用的两个 API,通过这两个API可以很方便的实现黑白滤镜效果。

JiangKan的专栏 2989

【从零开始学Skynet】实战篇《球球大作战》(一):功能设计

为了能把之前在基础篇中学习到的Skynet的各种知识结合起来,所以在实战篇中,我们准备开发一个完整的游戏案例《球球大作战》,介绍分布式游戏服务端的实现方法。

我是一条寻水的鱼 2978

js滤镜灰度计算_用canvas实现图片滤镜效果详解之灰度效果

脚本代码(For Alixixi.com)如下:window.onload = function() {var cv = document.getElementById('cv');var c = cv.getContext('2d');var canvas = document.getElementById("myCanvas");var context = canvas.getContext(...

weixin_42484898的博客 353

原创_新魔百和CM201-1鸿蒙架构当贝乐家语音安卓9线刷固件包刷机教程可救砖rom刷机包

不用担心变砖,因为系统内核会自动判断分区及CPU等级,假设你CPU是高于S905L3的那么。7.adb功能支持,系统增加开机自启功能,添加老人桌面模式,默认为年轻化桌面;所以我发的这个固件可适用于_cw_ys_zg_zn代工上生产的盒子进行刷机;5.CPU及GPU算法更改,当观看4K片源时,AI智能会自动优化系统后台进程,正如我所说,本固件是采用安卓公版镜像制作而成,那么代工厂也是使用的公版镜像,1.移植鸿蒙架构代码,完美融合安卓系统,增加系统的稳定性;刷机的时候 他会自动短接链接,所以不存在变砖。

a138088150的博客 1万+

STM32F103C8T6心电采集实战:从PCB设计到上位机开发的完整指南(附TI杯开源资料)

本文详细介绍了基于STM32F103C8T6的心电采集系统开发全流程,从PCB设计到上位机开发,特别适合大学生电子设计大赛参赛者参考。内容涵盖硬件设计精要、软件算法优化及上位机开发技巧,并附TI杯开源资料,帮助开发者低成本实现医疗级心电信号采集。

kafka6courier的博客 194

用canvas实现图片滤镜效果详解之灰度效果

前面展示了一些canvas实现图片滤镜效果的展示,并且给出了相应的算法,下面来介绍一下具体的实现方法。 前面介绍的特效中灰度效果最简单,就从这里开始介绍吧。

老三 1424

2025统计建模大赛完整论文

参赛队号:(参赛队无须填写,参赛队号由大赛官网自动生成)2025年(第十一届)全国大学生统计建模大赛参 赛 作 品参赛学校:XXXXXX大学论文题目:海洋叶绿素含量影响因素与预测——基于机器学习与大数据分析预测参赛队员:指导老师:国家知识产权局 统计分析成果 知识产权统计数据公开查询指引(2024版)随着全球气候变化的加剧,海洋碳汇的作用愈发受到重视,尤其是海洋生物通过光合作用吸收二氧化碳的过程,对于全球碳循环和温室气体减排具有重要意义。

2301_79579117的博客 9318

css 模糊滤镜_CSS滤镜效果:CSS中的模糊,灰度,亮度等等!

css 模糊滤镜A sample of the CSS filter effect possibilities in this article! 本文中CSS滤镜效果示例! Filters were originally part of the SVG specification. However, when their usefulness became evident, W3C starte...

culi4814的博客 2829

基于YOLOv8的农作物病虫害检测系统设计与实现

国内如中国农业大学的科研团队采用改进的Faster R-CNN模型对小麦病害进行检测,取得了较好的效果。农作物病虫害是影响农业生产的重要因素之一,每年因病虫害导致的农作物减产高达20%-40%。YOLO(You Only Look Once)系列算法作为目标检测领域的代表性模型,以其高效、准确的特点在众多领域得到广泛应用。YOLOv8作为该系列的最新版本,在精度和速度上都有显著提升,非常适合农作物病虫害检测这类需要实时处理的应用场景。然而,现有研究仍存在一些不足:一是模型复杂度高,难以部署到移动设备;

YOLO 794

Diffusion models代码实战:从零搭建自己的扩散模型

这个系列曾经写过三篇文章专门讲代码,分别从数据集、超参数、loss设计、参数计算、Unet结构、正向过程、逆向过程等部分详细介绍了如何搭建DDPM。Diffusion models领域发展神速,最近半年代表作品有OpenAI的GLIDE、DALL-E 2,Google Brain的ImageGen,海森堡大学的Latent Diffusion。这篇博客针对入门新手讲解一下如何利用已有的资源快速搭建自己的Diffusion models。.........

沉迷单车的追风少年 1万+

JavaScript实现基于Canvas的图像滤镜效果

// 获取HTML中的元素 const canvas = document.getElementById('myCanvas'); const ctx = canvas.getContext('2d'); const image = new Image(); image.src = 'example.jpg'; // 替换为你的图片地址// 图片加载完成后执行滤镜处理 image.onload = function() { canvas.width = image.width; canvas

安 534

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

canvas滤镜效果

<!doctype html><html><head><meta charset="UTF-8" /><title>canvas滤镜</title></head><body><div s...

chujuan7169的博客 166

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Canvas系列之一——滤镜效果

Canvas 真的是一个神奇的东西,不仅能够绘制各种图形、文本和位图,还能够对位图进行复杂的像素运算和处理。因此像滤镜这些东西,其实 Canvas 也可以来实现。接下来,是见证奇迹的时刻。 首先,我们需要有一个 Canvas 容器,例如: &lt;canvas id="myCanvas" width="800" height="800"&gt;&lt;/canvas&gt; 复制代码接下来,我们需...

weixin_34174322的博客 225

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HTML5 组件Canvas实现图像灰度化

作者 |贾志刚HTML5发布很长一段时间了,一直以来没有仔细的看过,学习后,发现HTML5中的Canvas组件功能是如此的强大,今天我们一起来看看HTML5 Canvas是怎么做到的吧...

web前端开发 387

canvas图片滤镜

无图不欢,先上图 <!DOCTYPE html> <html> <head> <meta name="keywords" content="风舞红枫,前端技术,canvas"/> <meta name="description" content="风舞红枫,前端技术,canvas,vue,react,node,个人博客"/> <meta charset="utf-8"> <title>图片滤镜</title&

风舞红枫的个人博客 377

如何在5分钟内使用PaintbrushJS为网站图片添加专业滤镜效果

想要为网站图片快速添加专业级滤镜效果吗?PaintbrushJS正是你需要的轻量级浏览器图像处理解决方案!这个基于JavaScript和Canvas的库让你无需复杂后端处理,直接在浏览器中实现各种视觉特效。无论你是前端开发者还是网站设计师,都能在5分钟内掌握这个强大的工具。 ## 🚀 PaintbrushJS是什么?为什么选择它? **PaintbrushJS** 是一个轻量级的浏览器端图像

gitblog_00383的博客 1069
上一篇: 写在国创答辩后
下一篇: canvas之怀旧/连环画/熔铸效果
doodlesomething
博客等级 码龄13年 53粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值