您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 实验四对比度拉伸直方图均衡及规格化处理
实验四【实验名称】对比度拉伸、直方图均衡及规格化处理【实验内容】编写对比度拉伸、直方图均衡及规格化(匹配)处理程序:通过参数调整使程序分别完成线性拉伸和非线性拉伸的直方图显示,完成直方图均衡及规格化处理程序的编程和测试工作。实验使用的操作系统是WindowsXP,使用的软件是VisualC++6.0。【算法分析】对比度拉伸主要是对像素的灰度值进行变换,分为线性变换和非线性变换。线性拉伸是输出灰度值与输入灰度值呈线性关系的象素级运算,灰度变换的一般公式为:Db=f(Da)=a(Da)+(b)a1:输出图像的对比度将增强;a1:输出图像的对比度将减弱。非线性拉伸是输出灰度值与输入灰度值呈非线性关系的象素级运算,灰度变换的一般公式:gij=F(fij)(i,j:0,1,…,L-1L为灰度级)其中,F(x)=x+cx(L-1-x),c0:中间灰度范围加强;c0:中间灰度范围减弱;F(x)的格式可以是抛物线,正弦函数,正切函数等非线性函数。直方图均衡化的基本思想是对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减,从而达到清晰图像的目的。即实现在灰度级范围内的灰度值映射,可以表示为:kt=G()ks,实现算法如下:(1)数组p,统计各个灰度值的个数,用一个数组p纪录p[i];(2)引入数组s[0]=p[0],s[i]=s[i-1]+p[i];(3)计算新的灰度级映射,引入数组L,令L[i]=s[i]/总像数*(原灰度级长度-1);(4)按照新的灰度级映射显示原图片。(如某个像素灰度值为gray,则该点的新灰度值L[gray])。直方图匹配(格式化):为了达到有目的的增强原始图像,可直接指定直方图的形状进行匹配。直方图匹配的目标就是为了达到处理后的图像的直方图和指定的直方图尽可能地相似,其算法流程如下:(1)对原图做均衡化处理,可表示为:kt=G()ks①;(2)对给定的直方图做均衡化处理,可表示为:=H()llvz②;(3)对②式求逆用(1)中得到1()llzHv,并用kt替换lv,其中k和l满足满足|-|kltv最小,可以得到灰度映射klsz,可以表示为:1(())lkzHGs③;(4)按照③式,调整图像各个像素的灰度值。【实验步骤】1、在实验二、三的基础上,添加对比度拉伸、直方图均衡化及规格化的菜单项和相应的响应函数OnLine(),OnQiufan(),OnFenduan(),OnP(),OnSin(),OnTan(),OnEqualization()和OnSpecification()。2、设计用于输入线性变换参数的对话框,并创建相应的对话框类CLine;在CLine类中添加成员变量m_a和m_b,用于传递线性变换参数a和b。3、设计用于输入非线性变换参数的对话框,并创建相应的对话框类CNonliner;在CNonliner类中添加成员变量m_c,用于传递非线性变换参数c或a。4、编码实现相关的函数功能。【实验结果及分析比较】1、线性变换a)一般线性变换:Db=f(Da)=a(Da)+b原图一般线性变换后b)求反:F(x)=255-x,求反后的图像和直方图如下c)分段线性变换:对灰度值0~63和192~255的范围缩减至0~31和224~255,对灰度值64~191的范围增加至32~223。分别对图像灰度值的R、G、B分量做如下操作:若X64,则F(X)=X/2若64≤X192,则F(X)=(X-64)*1.5+32若X≥192,则F(X)=(X-192)/2+224原图分段变换后2、非线性变换a)二次变换:F(x)=x+cx(L-1-x)。二次变换有两种,如果需要增加中间灰度范围,则参数C取正值;如果需要减少中间灰度范围,则参数C取负值。在输入C为0.005时,变换如下:c=0.005原图二次变换后b)正弦变换F(X)=255/2*{1+sin[α∏*(x/255-0.5)]/sin(α∏/2)}取a=0.5原图正弦变换后c)正切变换F(X)=255/2*{1+tan[α∏*(x/255-0.5)]/tan(α∏/2)}原图正切变换后3、直方图均衡化统计源图片各灰度的像素点占总像素点的比例P[256]。计算T[256],其中T[i]=P[1]+P[2]+…+P[i]。将T[256]*255转换为目标图像上的灰度值。原图均衡化后均衡化后的直方图4、直方图规格化直方图规定化就是有选择的增强某个灰度范围内的对比度或使图像灰度值的分布满足特定的条件。原图规格化后均衡化后的直方图【实验总结】通过本次实验,对线性点运算有了更进一步的学习和认识,均衡化对于灰度分布过低或过高的图像有改善作用,不过对灰度本来分布就很均匀的图像效果不大。规格化可以使图像的灰度进行变换,尽量趋近样本直方图的灰度分布情况。本实验能够通过线性点运算实现图像的灰度线性和非线性变换,并完成了对图像直方图的均衡化和规格化处理。【参考文献】1.杨淑莹编著,《VC++图像处理程序设计(第二版)》,清华大学出版社,20052.赵辉,叶子青编著,《VisualC++系统开发实例精粹》,人民邮电出版社,20053.谭明金编著,《VisualC++图形编程技巧与实例》,人民邮电出版社,20024.霍宏涛编著,《数字图像处理》,北京理工大学出版社,20025.马平编著,《数字图像处理和压缩》,电子工业出版社,2007
本文标题:实验四对比度拉伸直方图均衡及规格化处理
链接地址:https://www.777doc.com/doc-2460102 .html