本文详细介绍VB图像处理之图像的亮度对比度调整
在图像处理中,恐怕大家最熟悉的就是对于图像的亮度和对比度调整了。
前面一定也有很多人写过这样的文章了,但是想把我的这个系列作一个完整的小结,我就再罗嗦一番了。
还是以24位色图像为例子,每种色彩都可以用0-255,一共256种深度来表示。如果我们把它画在一个二维坐标上,正好是一条直线。
比如我们将像素的色深作为横坐标,输出色深作为纵坐标的画,正好是一条经过原点(0,0)的45度斜线。

如图中直线A所表示的,角T为45度,表示它的对比度正好为1。那么很容易就可以写出它的直线方程:Out = In * 1 ,系数1就是对比度的概念如果把条直线加上一个偏移量变成B,那么它的直线方程就成为:Out = In * 1 + (ab) 偏移量(ab)就是亮度的增量。
只要有初中的代数知识就很容易看出它满足一条直线方程:Y= A * X + B。
但是,我们这里要处理的情况稍微有些不同,在图像处理中,对比度和亮度要分别对待。不能因为改变而改变亮度,因为我们习惯上把灰色(127,127)这一点作为中心点。比如,我们加大了对比度,原来的直线A就变成如直线D所表示的,在改变了对比度的同时,也增加了亮度(ab),而我们心目中的变化应该是入直线C那样。也就是说,我们把(127,127)这一点映射成了坐标系的原点。
那么我们就要把原来的直线公式修改成:Y=( X - 127 ) * A + B + 127。A表示对比度,B表示亮度增量。我们验证一下:只要亮度增量 B=0,无论怎么改变对比度 A,该直线始终通过中心点(127,127),也就是说改变对比度的同时,亮度没有改变。
由此,我们就可以推导出颜色的对比度亮度计算公式了:
作者:WallesCai 责编:豆豆技术应用
正在加载评论...
- Visual Basic 9
- Visual Basic/VB入门教程
- Visual Basic界面/视图
- Visual Basic图像/多媒体
- Visual Basic数据库
- Visual Basic文件/目录/磁盘
- Visual Basic网络通信编程
- Visual Basic系统编程
- Visual Basic控件编程
- Visual Basic/VB源码下载