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

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

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

看了网上很多人说有个灰度公式,可以直接遍历每个像素,并把每个像素中的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)
}

结果如下
【图片处理算法】像素级图像处理算法--彩色转黑白_第1张图片

第二种方法-平均值法:

将像素中每一点的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 )
}

结果如下
【图片处理算法】像素级图像处理算法--彩色转黑白_第2张图片
Reference:
1.Ashley Taylor ‘Introduction to Computing Principles’.

你可能感兴趣的:(数字图形)