三种算法转换色彩灰阶
原文:Three algorithms for converting color to grayscale
如何转换成彩***像灰度?如果每个彩色像素由三重(R,G,B)(红,绿,蓝)的强度描述,
如何讲(R,G,B)映射到一个单独的数字作为的灰度值?在GIMP图像处理软件有三种算法。
lightness方法:是取最突触颜色和最不突出颜色的平均值: (max(R, G, B) + min(R, G, B)) / 2.
average方法:最简单取R,G,B的平均值:(R+G+B)/3 .
luminosity方法:是平均方法的一个更复杂的版本。它也是平均值,但它通过加权平均来解释人类感知。我们对绿色比其他颜色更敏感,所以绿色加权最大。其计算公式为亮度为0.21 R +0.72 G +0.07 B.
下面向日葵图片示例来自GIM文档:
lightness方法倾向于降低对比度。luminosity方法效果最好,如果你使用GIMP改变一个图片从RGB到灰度图片通过Image->ModeMenu,该方法是默认使用的方法。
然而,一些图像看起来更好地利用其他算法之一,有时三种方法产生非常相似的结果。
更多关于颜色和灰度
附:
1. 调色板:https://www.google.com/design/spec/style/color.html#color-color-palette
2.GIMP(GNU Image Manipulation Program):开源图片处理工具开源免费跨平台。
3.jscience 开源库提供的灰阶计算加权值常量文档
4. Java封装GIMP和Jscience提供的灰阶计算方法,代码示例:
/***Computemethodaboutgrayscalefrom*<p/>*gimpwebsite*http://docs.gimp.org/2.6/en/gimp-tool-desaturate.html*http://www.gimp.org/*<p/>*http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/*http://www.johndcook.com/blog/2009/08/24/more-on-colors-and-grayscale/*/publicstaticclassGrayScaleUtil{interfaceGrayScaleCompute{intgrayScale(intr,intg,intb);}publicenumGrayScale{Lightness(newGrayScaleCompute(){@OverridepublicintgrayScale(intr,intg,intb){returnGrayScaleUtil.lightness(r,g,b);}}),Average(newGrayScaleCompute(){@OverridepublicintgrayScale(intr,intg,intb){returnGrayScaleUtil.average(r,g,b);}}),Luminosity(newGrayScaleCompute(){@OverridepublicintgrayScale(intr,intg,intb){returnGrayScaleUtil.luminosity(r,g,b);}}),BT709(newGrayScaleCompute(){@OverridepublicintgrayScale(intr,intg,intb){returnGrayScaleUtil.BT709(r,g,b);}}),RMY(newGrayScaleCompute(){@OverridepublicintgrayScale(intr,intg,intb){returnGrayScaleUtil.RMY(r,g,b);}}),Y(newGrayScaleCompute(){@OverridepublicintgrayScale(intr,intg,intb){returnGrayScaleUtil.Y(r,g,b);}});privateGrayScaleComputegc;GrayScale(GrayScaleComputegc){this.gc=gc;}publicintgrayScale(intr,intg,intb){returnthis.gc.grayScale(r,g,b);}}//Lightness=(max(r,g,b)+min(r,g,b))/2publicstaticintlightness(intr,intg,intb){return(Math.max(Math.max(r,g),b)+Math.min(Math.min(r,g),b))/2;}//AverageBrightness=(r+g+b)/3publicstaticintaverage(intr,intg,intb){return(r+g+b)/3;}//Luminosity=(0.21*r+0.72*g+0.07*b)publicstaticintluminosity(intr,intg,intb){return(int)(0.21*r+0.72*g+0.07*b);}/***Magicnumberaboutgrayscalefromhttp://jscience.org/experimental/javadoc/org/jscience/computing/ai/vision/GreyscaleFilter.html*///BT709Greyscale:Red:0.2125Green:0.7154Blue:0.0721publicstaticintBT709(intr,intg,intb){return(int)(0.2125*r+0.7154*g+0.0721*b);}//RMYGreyscale:Red:0.5Green:0.419Blue:0.081publicstaticintRMY(intr,intg,intb){return(int)(0.5*r+0.419*g+0.081*b);}//Y-Greyscale(YIQ/NTSC):Red:0.299Green:0.587Blue:0.114publicstaticintY(intr,intg,intb){return(int)(0.299*r+0.587*g+0.114*b);}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。