图像编辑之对比度调整 亮度对比度的算法公式

您所在的位置:网站首页 matlab亮度增加100 图像编辑之对比度调整 亮度对比度的算法公式

图像编辑之对比度调整 亮度对比度的算法公式

2023-09-07 18:51| 来源: 网络整理| 查看: 265

1 void    AdjustContrast(TiBitmapData& bitmap,doublelevel) 2 { 3 #ifdef CONSTTHRESHOLD 4     AdjustContrastUsingConstThreshold(bitmap,level); 5 #else 6     AdjustContrastUsingAverageThreshold(bitmap,level); 7 #endif 8 }       下面对亮度/对比度的原理简单介绍一下。

    一、Photoshop对比度算法。可以用下面的公式来表示:

    (1)、nRGB = RGB + (RGB - Threshold) * Contrast / 255

    公式中,nRGB表示图像像素新的R、G、B分量,RGB表示图像像素R、G、B分量,Threshold为给定的阀值,Contrast为处理过的对比度增量。

    Photoshop对于对比度增量,是按给定值的正负分别处理的:

    当增量等于-255时,是图像对比度的下端极限,此时,图像RGB各分量都等于阀值,图像呈全灰色,灰度图上只有1条线,即阀值灰度;

    当增量大于-255且小于0时,直接用上面的公式计算图像像素各分量;

    当增量等于 255时,是图像对比度的上端极限,实际等于设置图像阀值,图像由最多八种颜色组成,灰度图上最多8条线,即红、黄、绿、青、蓝、紫及黑与白;

    当增量大于0且小于255时,则先按下面公式(2)处理增量,然后再按上面公式(1)计算对比度:

    (2)、nContrast = 255 * 255 / (255 - Contrast) - 255

    公式中的nContrast为处理后的对比度增量,Contrast为给定的对比度增量。

    二、图像亮度调整。本文采用的是最常用的非线性亮度调整(Phoposhop CS3以下版本也是这种亮度调整方式,CS3及以上版本也保留了该亮度调整方式的选项),本文亮度调整采用MMX,对亮度增量分正负情况分别进行了处理,每次处理2个像素,速度相当快,比常规BASM代码的亮度处理过程还要快几倍(参见《GDI+ 在Delphi程序的应用 -- 调整图像亮度》)。

    三、图像亮度/对比度综合调整算法。这个很简单,当亮度、对比度同时调整时,如果对比度大于0,现调整亮度,再调整对比度;当对比度小于0时,则相反,先调整对比度,再调整亮度。

 

亮度对比度的算法公式

一副图像的亮度对比度调节属于图像的灰度线性变换,其公式如下:

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; 这时只调节亮度。

         评论这张 转发至微博 转发至微博


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3