欢迎来到天天文库
浏览记录
ID:33705373
大小:674.00 KB
页数:11页
时间:2019-02-28
《图像直方图修正实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、XXXXX大学数据图像处理实验报告(2013年春季学期)课程名称:数字图像处理题目:图像直方图修正实验专业班级:XXXX学生姓名:XXX学号:指导教师:成绩:2013年4月25日一、实验目的1掌握灰度直方图的概念及其计算方法;2熟练掌握直方图均衡化和直方图规定化的计算过程;二、实验原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同
2、学们可以在课后自行联系。直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最
3、基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理后所得到的图像中都变得十分清晰。三、实验内容本实验基于VC++6.0的SDK创建的工程,编写程序实现以下功能:1.用直接灰度变换方法进行对比度增强,设计分段线性变换函数,做增强处理;2.编写程序进行图像的直方图统计和修正;一、实验过程1.用直
4、接灰度变换方法进行对比度增强,设计分段线性变换函数,做增强处理;1)在创建的工程资源的菜单中创建相应的“直方图均衡”菜单选项如图图1建立相应的类向导voidCMyDIPView::OnMenuitem32778(){//灰度均衡//获取文档CMyDIPDoc*pDoc=GetDocument();//指向DIB的指针LPSTRlpDIB;//指向DIB象素指针LPSTRlpDIBBits;//锁定DIBlpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());//找到DIB图像象素起始位置lpDIBBits=::FindDIBBits
5、(lpDIB);//判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图的直方图均衡,其它的可以类推)if(::DIBNumColors(lpDIB)!=256){//提示用户MessageBox("目前只支持256色位图的直方图均衡!","系统提示",MB_ICONINFORMATION
6、MB_OK);//解除锁定::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());//返回return;}//更改光标形状BeginWaitCursor();//调用InteEqualize()函数进行直方图均衡InteEqualize(lpDIBBits,:
7、:DIBWidth(lpDIB),::DIBHeight(lpDIB));//设置脏标记pDoc->SetModifiedFlag(TRUE);//更新视图pDoc->UpdateAllViews(NULL);//解除锁定::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());//恢复光标EndWaitCursor();}1)在实验一的基础上打开一副位图图21)点击菜单中的直方图均衡化图3代码如下:voidCMyDIPView::OnDraw(CDC*pDC){CMyDIPDoc*pDoc=GetDocument();ASSERT_VALID(pDoc)
8、;if(pDoc->m_hDIB==NULL)return;//TODO:adddrawcodefornativedatahereinti,j;unsignedchar*lpSrc;LPSTRlpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->m_hDIB);intcxDIB=(int)::DIBWidth(lpDIB);//SizeofDIB-xintcyDIB=(int)::DIBHeight(lpDIB);//SizeofDIB-yLPSTRl
此文档下载收益归作者所有