【图片处理算法】像素级图像处理算法--彩色转黑白

如何将彩色图片转为黑白图片

第一种方法-灰度公式法:

看了网上很多人说有个灰度公式,可以直接遍历每个像素,并把每个像素中的rgb换成如下值即可:
P = 0.299 × R e d + 0.587 × G r e e n + 0.114 × B l u e P=0.299\times Red +0.587\times Green+0.114\times Blue P=0.299×Red+0.587×Green+0.114×Blue
注意,这里需要给每个像素的r、g、b都换成这个P值
这里用js试一下

function makeGray() {
#遍历图片中每一个像素
  for (var pixel of img.values()) {
  #获得每个像素所含rgb的平均值
    avg = (pixel.getRed() + pixel.getGreen() + pixel.getBlue())/3;
    #使用公式得到PP =(0.299*pixel.getRed() +0.587* pixel.getGreen() + 0.114*pixel.getBlue())
    #把rgb每个颜色的亮度都换成P值
    pixel.setGreen(P)
    pixel.setRed(P)
    pixel.setBlue(P)
}

👇结果如下
在这里插入图片描述

第二种方法-平均值法:

将像素中每一点的rgb值设为rgb三个值的平均值。
a v g = ( R e d + G r e e n + B l u e ) ÷ 3 avg=(Red+Green+Blue)\div 3 avg=(Red+Green+Blue)÷3
这里使用js测试

function makeGray() {
#遍历图片中每一个像素
  for (var pixel of img.values()) {
  #获得每个像素所含rgb的平均值
    avg = (pixel.getRed() + pixel.getGreen() + pixel.getBlue())/3;
    #把rgb每个颜色的亮度都换成平均值
    pixel.setGreen(avg )
    pixel.setRed(avg )
    pixel.setBlue(avg )
}

👇结果如下
在这里插入图片描述
Reference:
1.Ashley Taylor ‘Introduction to Computing Principles’.

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值