图像亮度、对比度 算法--cg

亮度、对比度原理:
亮度对比度的算法公式
一副图像的亮度对比度调节属于图像的灰度线性变换,其公式如下:
y = [x - 127.5 * (1 - B)] * k + 127.5 * (1 + B);
x为调节前的像素值,y为调节后的像素值。
其中B取值[-1,1],调节亮度;
k调节对比度,arctan(k)取值[1,89],所以
k = tan( (45 + 44 * c) / 180 * pi );
其中c取值[-1,1]。通常我们用该值来设置对比度
特别的,
当B=0 时:y = (x - 127.5) * k + 127.5; 这时只调节对比度。
当c=0 时,k = 1:y = x + 255 * B; 这时只调节亮度。

同时,我项目中是需要处理成黑白颜色的。rgb处理成黑白的方法通常是用经验算法:
float gray = dot( color, float3(0.2989, 0.5870, 0.1140));

cg实现:

sampler2D RT : register(s0);
float4 Gan_ps(//in float4 pos : POSITION,
                     float2 iTexCoord : TEXCOORD0,
                     float4 outPos : TEXCOORD1,
                    , float4 outColor : TEXCOORD2
                    ,uniform float br//亮度
                    ,uniform float duibi 
                     ) : COLOR
{
    float4 color=tex2D(RT, iTexCoord); 
    float c = dot( color.rgb, float3(0.2989, 0.5870, 0.1140)); //黑白处理
    float k=tan((45+44*duibi)/180.0*3.1415926);
    c=(c-0.5*(1-br))*k+0.5*(1+br);//亮度、对比度计算

    return float4(c,c,c,1);
}


  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思依_xuni

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值