灰度的线性变换
功能:
通过将图像中的所有的点的灰度按照线性灰度变换函数进行变换,最常见的线性变换就是反转。
算法:
灰度的线性变换用到的线性灰度变换函数f(x)是一个一维线性函数:
f(x) = kx + d,应用到图像上就带人各像素点的灰度值:Gd=f(Gs) = k*Gs + d;其中k为线性函数的斜率,d为线性函数在y轴的截距。Gs表示输入图像的灰度,Gd表示输出图像的灰度。
当k>1时,输出图像的对比度将增大;
当k<1时,输出图像的对比度将减小;
当k=1且d≠0时,操作使所有的灰度值上移或下移,其效果是使整个图像变暗或变亮。
当k<0,暗区域将变亮,亮区域将变暗,点运算完成了图形求补运算。
特殊情况:1、当k=1,d=0时,输出图像与原图像相同。2、当k=-1,d=255时,输出图像的灰度正好相反。
实现代码:
for( int i=0; i<iPixelHeight; i++ )
{
for( int j=0; j<iPixelWidth; j++ )
{
//指向像素数据的第i行,第j列/个像素的指针
lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight-1-i) + j; //lLineBytes * (lHeight-1-i) + j???不懂
fTemp = k*(*lpSrc) + d; //线性变换
if( fTemp > 255 )
{
*lpSrc = 255;
}
else if ( fTemp<0 )
{
*lpSrc = 0
}
else
{
*lpSrc = (unsigned char)(fTemp+0.5); //四舍五入
}
}
}
所谓的饱和度, 指的其实是色彩的纯度,纯度越高,表现越鲜明,纯度较低,表现则较黯淡,色饱和度表示光线的彩色深浅度或鲜艳度,取决于彩色中的白色光含量,白光含量越 高,即彩色光含量就越低,色彩饱和度即越低,反之亦然。其数值为百分比,介于0 - 100% 之间。纯白光的色彩饱和度为0,而纯彩色光的饱和度则为100%。色饱和度受到屏幕亮度和对比度的双重影响,一般亮度好对比度高的屏幕可以得到很好的色饱 和度。
所谓对比度:是 指投影图像最亮和最暗之间的区域之间的比率,比值越大,从黑到白的渐变层次就越多,从而色彩表现越丰富。对比度对视觉效果的影响非常关键,一般来说对比度 越大,图像越清晰醒目,色彩也越鲜明艳丽;而对比度小,则会让整个画面都灰蒙蒙的。高对比度对于图像的清晰度、细节表现、灰度层次表现都有很大帮助。对比 度越高图像效果越好,色彩会更饱和,反之对比度低则画面会显得模糊,色彩也不鲜明。

浙公网安备 33010602011771号