




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于灰度查找表的图像增强 专业: 班级: 学号: 姓名: 日期:2006-6-25一. 实习目的和意义1 学习基于灰度查找表的图像增强(灰度线性变换)算法的方法,掌握其减少计算量的原理;2 实用VC编程语言实现基于灰度查找表灰度线性变换算法;3 巩固和提高VC编程的能力。二实习原理和方法 实习原理是对影像点灰度进行线性变换,从而达到图象增强的目的。灰度点运算的基本算法为:pDatai=pDatai*a+b。对于一幅1024*768的BMP位图对于上式的运算次数为:1024*768若建立灰度查找表,GrayMin=I=GrayMaxLookTablei,对于上式的运算次数为GrayMax- GrayMin+1次,大大减少加法运算的次数对于图像上每个像素变换后的灰度直接在LookTable中寻找。所以应该先建立一个影像的灰度查找表,然后对每个像素点进行灰度处理时直接调用查找表之中对应值,以此大大减少加法计算量。三实习过程和步骤1用MFC AppWizard创建以“学号姓名”命名的项目:选择Multiple Docunment; 选择视图类基类CScrollView;2根据给定DIBAPI.H,DIBAPI.CPP,MyFile.CPP文件,完成位图读写显示。3添加菜单和对话框,设置对话框的控件,界面如下图所示:4建立菜单的消息的响应函数,注意Slider控件的范围,由于其数据类型是整型的,所以在设置其范围时应该扩大一定倍数,然后在实际计算时在除以这个倍数,这样可以提高滑块的精度,可以间接的得到小数点后几位数值。代码如下:void Cxxls:OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult) m_slidera.SetRange(0,500);UpdateData(TRUE);m_a = (double)m_slidera.GetPos()/100;UpdateData(FALSE);*pResult = 0;5编写功能函数1)基于灰度查找表的图像线形变换首先创建一个灰度查找表,代码如下: int max=p0; int min=p0; for(int a=0;aheightDIB;a+) for(int b=0;b= max) max = pLineBytes*a+b; if (pLineBytes*a+b = min) min = pLineBytes*a+b; int LookTable256; int i,j; for(i=min-1;i255) LookTablei=255; if(LookTablei0) LookTablei=0; 通过调用灰度查找表,对图像进行线形变换,代码如下: int t; for(int x=0;xheightDIB;x+) for(int y=0;yGetHDIB();if (hdib=NULL) MessageBox(请先打开一幅BMP图象!,系统消息,MB_ICONINFORMATION|MB_OK); return;LPSTR pDIB=(LPSTR)LocalLock(hdib);LPBYTE pData=(LPBYTE):FindDIBBits(pDIB); BITMAPINFOHEADER *lpDIBHdr;/位图信息头结构指针;BYTE *lpDIBBits;/指向位图像素灰度值的指针;lpDIBHdr=( BITMAPINFOHEADER *)GlobalLock(hdib);/得到图像的位图头信息lpDIBBits=(BYTE*)lpDIBHdr+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD); CZhifangtu dialog;int i,j;int wImgWidth=:DIBWidth(pDIB); int wImgHeight=:DIBHeight(pDIB);/a数组用来存放各个灰度级出现的概率;float a256;for(i=0;i256;i+) ai=0;/统计各个灰度级出现的次数;for(i=0;iwImgHeight;i+)for(j=0;jwImgWidth;j+)a*(lpDIBBits+WIDTHBYTES(wImgWidth*8)*i+j)+;/统计各个灰度级出现的概率;for(i=0;iGetClientRect(&rect);/得到Frame控件窗口的视区域;int i;CPaintDC dc(pWnd);/得到Frame控件的设备上下文; /画直方图的x、y轴;dc.MoveTo(0,rect.Height();dc.LineTo(rect.Width(),rect.Height();dc.MoveTo(0,rect.Height();dc.LineTo(0,0);/ 绘制X轴箭头dc.MoveTo(rect.Width(),rect.Height();dc.LineTo(rect.Width()-10,rect.Height()-10);dc.MoveTo(rect.Width(),rect.Height();dc.LineTo(rect.Width()-10,rect.Height()+10);/ 绘制Y轴箭头dc.MoveTo(0,0);dc.LineTo(10,10);dc.MoveTo(0,0);dc.LineTo(-10,10);/画直方图/num内部数组变量/存放的是图像各个灰度级出现的概率;/该数组的各个分量在显示具体图像的直方图时设置;for(i=0;i256;i+)/根据图像上的各个灰度级出现的概率/在坐标上对应的画出一根直线/从而各个表示各灰度级出现概率的直线构成了图像的直方图;CPen myPen(PS_SOLID,1,RGB(0,255,0); dc.SelectObject(&myPen);dc.MoveTo(i+1,rect.Height();dc.LineTo (i+1,(rect.Height()-rect.Height()*numi*10); /此处num分量乘以10是为了放大个灰度级上对应的出现概率直线,增强显示效果;四实习分析与评价1、位图显示2、线形变换 3、直方图显示实习要求基本达到了,图像处理效果良好,但是还有两点不足,一是直方图显示方面由于时间关系仅仅绘制了坐标轴没有绘制坐标值,应该通过TEXTOUT语句完成;二是未能实现图像的实时处理和直方图的实时更新,这一点需要了解SLIDER控件的数据通信操作,由于本人变成水平有限,未能完成。五实习总结与体会本次基于灰度查找表的图像线性变换实习仅有三次实习时间,但由于有上个学年数字图像处理的编程基础,所以实习过程中并未碰到很大的障碍,比较顺利的完成了实习的基本要求。回想本次编程实习,首先碰到的一个问题是算法的理解,就是基于灰度查找表的图像计算如何能减少计算量,这一点实习原理中已说得很清楚,但是,就灰度查找表的构建问题,我刚开始对老师给出的方法提出了质疑。我想构建灰度查找表并不需要寻找出图像中的灰度最大和最小值,而在灰度0到255的区间里全部赋值即可,这样还可以减少计算图像灰度最值的过程,不需要遍历图像一遍。但后来仔细思考了一下,利用灰度最值可以减少灰度运算时的查找量,应该是一种通行的方法,所以最后仍然使用了老师给出的算法。在具体的编程过程中,线性变换和灰度直方图的显示都并不难,但是,要实现图像的实时处理和直方图的实时更新就不容易了。由于对SLIDER控件不熟悉,我并没有在实习安排的时间内完成这个功能。但是我参看了一些同学编写的实习处理的程序,看到有一种方法是在OnCustomdrawSlider函数中直接进行灰度变换,这样,由于有两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年建筑结构设计师专业技能模拟题与答案详解
- 电信弱电知识培训课件
- 2025年玻璃熔化工中级实操考试面试指南及技巧
- 2025年物资仓库保管员招聘面试题详解实际案例与答题技巧
- 办公室文员实习工作报告
- 急性CO中毒的急救和护理
- 甲状腺手术的麻醉
- 甲流预防课件
- 《百年孤独(节选)》课件
- 田径跳高课件
- 备战2024年高考英语考试易错点16 阅读理解:词义猜测题(4大陷阱)(解析版)
- 奇瑞汽车使用说明书
- 癫痫病人的护理
- 动环L1试题题库(494道)
- 癫痫的治疗(讲课)
- 安顺康闽果食品有限公司年产240吨年糕生产线建设项目环评报告
- 安全生产基本知识(乡镇办人员)培训课件
- 银行安全保卫工作会议记录
- 西北地区农村生活污水处理技术指南(试行)
- 学校宿舍楼建筑装饰工程招标控制价编制技术经济分析
- 玩具厂作业指导书(含管理制度、规程)
评论
0/150
提交评论