如果数据很小,设置为0
if(pByte<=Low)
return 0;
获得中间数据,并进行对比增强处理
else if ((Low<pByte)&&(pByte<High))
return int(((pByte-Low)/Grad));
如果数据很大,设置为255
else return 255;
③ 效果图
图4-6 对比度增强效果图
第三节 编程时的问题解决
1、光线补偿
由于要改变每一个像素的亮度,开始,我通过对数幅图像使用一个固定的值进行测试,得到的效果都满理想,但是当对更多的图像处理时,该固定值就出现了明显的不足,最后不得不采用全局统计的方法,才能得到比较理想的效果。
2、高斯平滑
高斯平滑用于消除图片噪音,为了实现此功能,我们使用了模板操作,因此模板参数的选择是最重要的。高斯平滑效果的好坏取决与模板参数。在编程的时候,试探性的进行参数的选择,然后进行比较,看那组参数可以达到最好的效果。模板参数是
原先采用了
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
形式,但是,得到的效果却是令人失望。
后来又用了
1/10 1/10 1/10
1/10 1/5 1/10
1/10 1/10 1/10
形式,但是,结果仍然是未能达到预期的效果。
直到最后采用的
1/16 2/16 1/16
2/16 4/16 2/16
1/16 2/16 1/16
形式,才得到了比较合理的效果。
3、 均衡直方图
开始时,图像的会度一直都处于很散的状态,而且图像的特征不明显,原本想经过高斯平滑后进行灰度变换,但是并未能成功。经过了一翻苦战,最终找到均衡直方图的办法,经过多次尝试,效果一直处于比较理想的状态。
第五章 结构设计
在本系统中,起至关重要的类列举如下,并将它们的成员函数及其成员函数的功能和参数都一一简述:
1、CFaceDetectView :该类是在编程的过程中自动生成的。菜单项中的事件处理程序都是在该类对应的CFaceDetectView.h文件和CFaceDetectView.cpp文件中声明和实现的。表7-1列出了该类所封装的成员函数及其功能:
表7-1 类 CfaceDetectView的成员
函 数 功 能
IncreaseContrast () 增强图像对比度
FixeEyes () 眼睛定位
FixeNose() 鼻子定位
FixeMouth () 嘴巴定位
GetEyesParameter () 获取眼睛参数
GetPartParameter() 获取脸部特征
GetmouthParameter () 获取嘴巴参数
Centerofgravity() 获取眼、鼻子、嘴巴的重心
AverageDeviation () 获取平均值的标准偏差
Template() 对图像进行模板操作
DrawCrossX () 画十字标记
各成员函数解析
函数名称 : IncreaseContrast
参数 : int pByte ---- 图像的灰度值
int n ---- 用于调节对比度的参数
返回值 : int ---- 新的灰度值
说明 : 该函数通过修图像的灰度值来增强图像的对比度
<< 上一页 [11] [12] [13] [14] [15] 下一页