码迷,mamicode.com
首页 > 其他好文 > 详细

(5)彩色图像去饱和

时间:2015-07-02 15:20:53      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

去饱和是指在RGB图像中以连续的方式统一消减颜色量。通过将每一个RGB像素替换为一个去饱和的颜色(Rd, Gd, Bd)来实现,其中(Rd, Gd, Bd)是在RGB空间通过在像素的原始颜色和相应的灰度点(Y, Y, Y)之间进行线性插值求得。即:

  (Rd, Gd, Bd) = (Y, Y, Y)+ (R - Y, G - Y, B - Y)* s 

系数s的取值区间为[0, 1],s取0时,为灰度图像,s取1时,为原图。

代码实现如下:

	public int getNewColor(int color){
        int r = (color >> 16) & 0xFF;
        int g = (color >> 8) & 0xFF;
        int b = color & 0xFF;
        int gray = (int)((r*0.3)+(b*0.59)+(g*0.11));
        int newR = saturation(r, gray);
        int newG = saturation(g, gray);
        int newB = saturation(b, gray);
        return (255 << 24) + (newR << 16) + (newG << 8) + newB;
	}
	
	private int saturation(int rgb, int gray){
		return gray + (rgb - gray) * (mParameter) / 100;
	}

 参数mParameter取100和50的饱和度图如下:

技术分享技术分享

(5)彩色图像去饱和

标签:

原文地址:http://www.cnblogs.com/fordreamxin/p/4615941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!