图像灰度亮度对比度.docx
- 文档编号:23327653
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:10
- 大小:185.20KB
图像灰度亮度对比度.docx
《图像灰度亮度对比度.docx》由会员分享,可在线阅读,更多相关《图像灰度亮度对比度.docx(10页珍藏版)》请在冰豆网上搜索。
图像灰度亮度对比度
公司内部档案编码:
[OPPTR-OPPT28-OPPTL98-OPPNN08]
图像灰度亮度对比度
C++Builder
图像灰度、对比度和亮度
学号:
0007
学生所在学院:
研究生学院
学生姓名:
王阳
任课教师:
熊邦书
教师所在学院:
电子信息工程学院
2008年1月
07级
实现图像的灰度变换和对比度、亮度调节
王阳
研究生学院
摘要:
C++Builder是一种快速高效的可视化开发语言,与一般语言相比,其在图形绘制和图像处理上功能较强。
本文是对图像的灰度、亮度、对比度进行调整。
这些处理主要是对现存图像进行处理,通过设置不同的像素颜色值来达到各种效果。
关键词:
C++Builder灰度亮度对比度
一.图像的灰化处理
1.理论基础
图像的灰度变换处理是图像增强处理技术中一种非常基础,直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。
灰度变换是指根据某种目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。
目的是为了改善画质,使图像的显示效果更加清晰。
灰度变换有时又被成为图像的灰度增强或对比度拉伸。
颜色可以为黑白色,灰度色和彩色。
工程应用中经常要遇到需要把彩色图像到灰度图像的变换的问题,采集卡过来的图像为彩色图像,为加快处理速度,要把彩色图像转换为黑白图像。
由彩色转化为灰度的过程叫做灰度化处理,它是使RGB模型中的R=G=B。
灰度化处理是把含有亮度和色彩图像变化成灰度图像的过程。
一般情况下彩色图像每个像素用3个字节表示,每个字节对应着R,G,B分量的亮度(红,绿,蓝),转换后的黑白图像的一个像素用一个字节表示该点的灰度值,它的值在0-255之间,数值越大,该点越白,即越亮,越小则越黑。
转换关系为:
其中
为转换后的黑白图像在
点处的灰度值,我们可以观察公式,其中绿色所占的比重最大,所以转换时可以直接使用
值作为转换后的灰度。
灰度图只能表现256种颜色,灰度化处理还有其他的方法,如:
取3个分量的最大值,最小值,算术平均值等,目的都是使颜色的R,G,B分量值相等。
在灰度图像中,每一个像素都以8位元表示,因此可以表现出256
种层次,所以分量值的取值范围是(0-255),所以灰度图像只能表现256种颜色,且灰度图像中只有灰度而没有彩色。
在这里取3个分量中的最大值作为灰度值。
灰度处理首先读入图像的拷贝文件到内存中,找到R,G,B中的最大值,使颜色的分量值都相等且等于最大值,这样就可以使图像变成灰度图像。
2.二值化
一幅图像包括目标物体,背景还有噪声,怎样从多值的数字图像中只取出目标物体,最常用的方法就是设定某一阀值
将图像的数据分成两大部分:
大于
的像素群和小于
的像素群。
这是研究灰度变换最特殊的方法,称为图像的二值化。
二值化处理就是把图像
分成目标物体和背景两个领域。
二值化是数字图像处理中一项最基本的变换方法,通过非零取一,固定阀值,双固定阀值等不同的阀值化变换方法,使一般灰度图变成了黑白二值图像将我们所需的目标部分从复杂的图像背景中脱离出来。
阀值处理的操作过程是先由用户指定或通过算法生成一个阀值,如果图像中某图像素的灰度值小于该阀值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0.
阀值化的变换函数表达式如下:
其中
为指定的阀值。
阀值
就像个门槛,比它小就是黑。
该变换函数是阶跃函数,只需给出阀值点
即可,经过阀值处理后的图像变成了一幅黑白二值图。
3.实现步骤
(1)取得图像文件的拷贝文件;
(2)取得图像的数据区指针,得到像素的蓝,绿,红的3个分值;
(3)将蓝,绿,红的3个值作比较,取得最大值;
(4)将最大颜色值返回给蓝,绿,红的3个分量;
(5)显示图像。
二.图像的亮度处理
1.理论基础
人眼对亮度是非常敏感的,在比较两个强弱不同的亮度时,有较好的判断力。
所以在图像的处理过程中,经常要对亮度和对比度进行调整。
亮度的调整,是指人眼亮度感觉的调整,可以通过对R,G,B颜色的增加(增加亮度)或减少(减少亮度)相同的增量来显示。
亮度的调整就是给每个分量乘以一个百分比值,这个值由对话框输入。
3个颜色指针分别乘以一个百分比的量后再返回给原来的颜色分量。
(1)当输入值为100时,图像保持原来亮度;
(2)当输入值小于100时,图像亮度就减少,图像就变暗;
(3)当输入值大于100时,就可以使图像的亮度增加。
2.实现步骤
(1)取得图像文件的拷贝文件;
(2)从对话框输入任意整数值(这里约定在0-500);
(3)取得图像的数据区指针,得到像素的蓝、绿、红的3个分值;
(4)将这3个值分别乘以从对话框输入的值;
(5)检验所得到的每个值是否在(0-255)范围内,若越界则取边界值255;
(6)再把3个新值返回给蓝、绿、红的3个指针变量;
(7)显示图像。
三.图像的对比度调整
1.理论基础
调整对比度可以使图片的颜色之间更符合人们的需求,实现一些效果。
假设有一幅图像,成像时光照不足,使得整幅图像偏暗,或者成像时光照过强,使得整幅图像偏亮,这些情况称为低对比度,即颜色都挤在一起,没有拉开。
增加对比度的意思就是把所感兴趣的颜色范围拉开,使得该范围内的像素,亮的越亮,暗的越暗,从而达到增强对比度的目的。
对比度实际就是颜色分量之间的差值。
调整对比度就是对每一颜色分量值的最大值和最小值进行处理。
改变对比度就是对每一颜色分量以一致的方式来改变最大值和最小值之间的差值,对每一个像素RGB分量的值都要进行调整。
因为一个真彩色图像由三个字节组成,并且DIB位图是从最下面一行开始逐渐的向上存储,也即等于把图像倒过来经行扫描。
所以像素的指针先指向B,然后指向G,最后指向R。
从对话框获得调整的对比度的参数n在(-127,128)区间。
具体实现的方法如下。
(1)当输入值为0时,图像保持原来对比度;
(2)当输入值小于0时,减少图像的对比度。
减少对比度变化的方法为:
上述计算的结果是对每个红、绿、蓝分量的区间经行缩小,把从
减少到
。
(3)当输入值大于0时,增加图像的对比度。
增加对比度变化的方法为:
式中,
为原图像的像素的分量值,
为改变后的对应的分量值。
计算的结果是对每个红、绿、蓝分量的区间进行扩大,把从
增加到
。
2.实现步骤
(1)取得图像文件的拷贝文件;
(2)取得图像的数据区指针,得到像素的蓝、绿、红的3个分量;
(3)将这3个人值分别进行上述公式处理,得到新值;
(4)再把3个新值返回给蓝、绿、红3个指针变量;
(5)显示图像。
四.图像的实现结果
图1原图像
图2图像的灰度处理图3图像的二值化
图4对图像增加亮度图5对图像减小亮度
图6对图像增加对比度图7对图像减小对比度
五.实验结果分析
本实验是对图像进行灰度、亮度、对比度处理,通过这个实验得出如下结论:
图像经过灰度、亮度、对比度处理后,效果明显。
本实验还对图像进行了特殊的灰度处理——二值化,效果也很明显。
并且在亮度或对比度处理时,可以逐步增加或减小图像的亮度和对比度的。
参考文献
[1]梅成刚等.C++Builder项目开发实践.北京:
中国铁路出版社,2003,237-266
[2]余明星等.BorlandC++Builder程序设计经典.北京:
科学出版社,2004,121-143
[3]杨淑莹编着.VC++图像处理程序设计.北京:
清华大学出版社,北方交通大学出版社,2003,39-51
[4]胡波,张昆等.C++Builder6编程实例教程.北京:
北京希望电子版社,2002,250-277
[5]翟焱等编着.C++多媒体开发技术.北京:
人民邮电出版社,2000,62-101
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 灰度 亮度 对比度
![提示](https://static.bdocx.com/images/bang_tan.gif)