GRAY 灰度图_灰度看好的25个币

GRAY 灰度图_灰度看好的25个币原文地址:http://blog.csdn.net/ooakk/article/details/.灰度图GrayScaleImage定义GrayScaleImage或是GrayScaleImage,5

原文地址:GRAY 灰度图

1.灰度图Gray Scale Image 定义

Gray Scale Image 或是 Gray Scale Image,56阶。又称灰阶图。把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为2用灰度表示的图像称作灰度图。
什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:
  1.浮点算法:Gray=R*0.3+G*0.59+B*0.11
  2.整数方法:Gray=(R*30+G*59+B*11)/100
  3.移位方法:Gray =(R*76+G*151+B*28)>>8;(GRAY = R*76/256+G*151/256+B*28/256)
  4.平均值法:Gray=(R+G+B)/3;
  5.仅取绿色:Gray=G;
  通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。

在嵌入式系统中采用灰度图显示可以显著降低显示RAM容量的要求。

RGB channels separation.png

参考链接:

(1)http://baike.baidu.com/view/1184366.htm

(2) http://en.wikipedia.org/wiki/Grayscale

【附】RGB图像的各种格式

RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各各位意义如下:
  高字节 低字节
  R R R R R G G G G G G B B B B B

可以组合使用屏蔽字和移位操作来得到RGB各分量的值:

[cpp]  view plain   copy

  1. #define RGB565_MASK_RED 0xF800  
  2. #define RGB565_MASK_GREEN 0x07E0  
  3. #define RGB565_MASK_BLUE 0x001F  
  4. R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31  
  5. G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63  
  6. B = wPixel & RGB565_MASK_BLUE; // 取值范围0-31  
  7. #define RGB(r,g,b) (unsigned int)( (r/0x08 << 11) | (g/0x08 << 6) | b/0x08 )  
  8. #define RGB(r,g,b) (unsigned int)( (r/0x08 << 10) | (g/0x08 << 5) | b/0x08 )  

该代码可以解决24位与16位相互转换的问题

RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:
  高字节 低字节
  X R R R R G G G G G B B B B B (X表示不用,可以忽略)
可以组合使用屏蔽字和移位操作来得到RGB各分量的值:

[cpp]  view plain   copy

  1. #define RGB555_MASK_RED 0x7C00  
  2. #define RGB555_MASK_GREEN 0x03E0  
  3. #define RGB555_MASK_BLUE 0x001F  
  4. R = (wPixel & RGB555_MASK_RED) >> 10; // 取值范围0-31  
  5. G = (wPixel & RGB555_MASK_GREEN) >> 5; // 取值范围0-31  
  6. B = wPixel & RGB555_MASK_BLUE; // 取值范围0-31  


RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:


  typedef struct tagRGBTRIPLE { 


  BYTE rgbtBlue; // 蓝色分量


  BYTE rgbtGreen; // 绿色分量


  BYTE rgbtRed; // 红色分量


  } RGBTRIPLE;

参考:网络资料。

今天的文章
GRAY 灰度图_灰度看好的25个币分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60190.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注