Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8347025
  • 博文数量: 1413
  • 博客积分: 11128
  • 博客等级: 上将
  • 技术积分: 14685
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-13 10:03
个人简介

follow my heart...

文章分类

全部博文(1413)

文章存档

2013年(1)

2012年(5)

2011年(45)

2010年(176)

2009年(148)

2008年(190)

2007年(293)

2006年(555)

分类: C/C++

2006-09-19 09:22:54

[点评:彩色转灰度的算法,基本上都是一种近似算法,利用人眼的感觉来定义灰度值,没有一个正式的说法,不过已经足够了.]

亮度值 = (R*30 + G*59 + B*11 ) / 100
rgb分别对亮度值的影响是30%,59%和11%。

然后把 R,G,B都赋值为该亮度值,就可得到灰度图象。
无调色板的真彩色,直接修改数据。
有调色板的直接修改调色板中的RGB。

posted on 2004-06-24 15:52 杨老师的茅屋 阅读(1294) 评论(6)  编辑 收藏
  • # re: 友情提示:彩色转灰度的算法
    周星星
    Posted @ 2004-06-24 21:59
    因为红绿兰对视觉的刺激程度不同,所以采用算法 R*0.3+G*0.59+B*0.11 比较好,但这不是唯一的算法,常用的还有其他三种,共四种
    1. R*0.299 + G*0.587 + B*0.114
    这就是你所说的算法,只是权值更精确了一些
    2. R*0.45+G*0.35+B*0.20
    3. max( R, G, B );
    4. avg( R, G, B );
    windows 中自带的画图软件就使用这种算法。
  • # **好全面。在论坛上看到有人乱说,所以在BLOG上纠正一下:)

    Posted @ 2004-06-24 23:57
  • # re: 友情提示:彩色转灰度的算法

    Posted @ 2004-07-10 23:59
    那如果我的RGB是5、6、5格式
    应该怎么转换呢?
  • # re: 友情提示:彩色转灰度的算法
    PomeloWu
    Posted @ 2005-01-19 00:21
    楼上的朋友可以看看我的blog中的文章
    http://blog.csdn.net/pomelowu
  • # re: 友情提示:彩色转灰度的算法

    Posted @ 2005-07-26 19:13
    请问下要把转成的灰度的图像再转成彩色的,该怎么做呢?谢谢
  • # re: 友情提示:彩色转灰度的算法

    Posted @ 2006-03-09 22:04
    那是不可能的,颜色信息已经丢失了
  • 将RGB想成3D之X,Y,Z轴,则BMP的RGB为(r,g,b)与座标(Y,Y,Y)距离最小时的Y即为灰阶值
    Y = 0.29900 * R + 0.58700 * G + 0.11400 * B
    整数化
    Y = ( 9798*R + 19235*G + 3735*B) / 32768
    RGB(Y, Y, Y)就可以了
  • 另外:在win32sdk中有函数GetPixel()和SetPixel()分别用来获取或设置某一像素值.
阅读(1407) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~