已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXXX大学数据图像处理实验报告(2013年春季学期)课程名称 : 数字图像处理 题 目 : 图像直方图修正实验 专业班级 : XXXX 学生姓名 : XXX 学 号 : 指导教师 : 成 绩 : 2013 年 4 月 25 日一、 实验目的1掌握灰度直方图的概念及其计算方法;2熟练掌握直方图均衡化和直方图规定化的计算过程;二、 实验原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化 增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理后所得到的图像中都变得十分清晰。三、 实验内容本实验基于VC+6.0的SDK创建的工程,编写程序实现以下功能:1. 用直接灰度变换方法进行对比度增强,设计分段线性变换函数,做增强处理;2. 编写程序进行图像的直方图统计和修正;四、 实验过程1. 用直接灰度变换方法进行对比度增强,设计分段线性变换函数,做增强处理;1) 在创建的工程资源的菜单中创建相应的“直方图均衡”菜单选项如图图1建立相应的类向导void CMyDIPView:OnMenuitem32778() / 灰度均衡/ 获取文档CMyDIPDoc* pDoc = GetDocument();/ 指向DIB的指针LPSTRlpDIB;/ 指向DIB象素指针LPSTR lpDIBBits;/ 锁定DIBlpDIB = (LPSTR) :GlobalLock(HGLOBAL) pDoc-GetHDIB();/ 找到DIB图像象素起始位置lpDIBBits = :FindDIBBits(lpDIB);/ 判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图的直方图均衡,其它的可以类推)if (:DIBNumColors(lpDIB) != 256)/ 提示用户MessageBox(目前只支持256色位图的直方图均衡!, 系统提示 , MB_ICONINFORMATION | MB_OK);/ 解除锁定:GlobalUnlock(HGLOBAL) pDoc-GetHDIB();/ 返回return;/ 更改光标形状BeginWaitCursor();/ 调用InteEqualize()函数进行直方图均衡InteEqualize(lpDIBBits, :DIBWidth(lpDIB), :DIBHeight(lpDIB);/ 设置脏标记pDoc-SetModifiedFlag(TRUE);/ 更新视图pDoc-UpdateAllViews(NULL);/ 解除锁定:GlobalUnlock(HGLOBAL) pDoc-GetHDIB();/ 恢复光标EndWaitCursor();2) 在实验一的基础上打开一副位图图23) 点击菜单中的直方图均衡化 图3代码如下:void CMyDIPView:OnDraw(CDC* pDC) CMyDIPDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if(pDoc-m_hDIB = NULL)return ;/ TODO: add draw code for native data hereint i,j; unsigned char *lpSrc;LPSTR lpDIB = (LPSTR) :GlobalLock(HGLOBAL) pDoc-m_hDIB);int cxDIB = (int) :DIBWidth(lpDIB); / Size of DIB - xint cyDIB = (int) :DIBHeight(lpDIB); / Size of DIB - yLPSTR lpDIBBits=:FindDIBBits (lpDIB);/ 计算图像每行的字节数long lLineBytes = WIDTHBYTES(cxDIB * 8);/ 每行for(i = 0; i cyDIB; i+)/ 每列for(j = 0; j m_hDIB);CRect rect(0,0,cxDIB,cyDIB), rcDIB(0,0,cxDIB,cyDIB);:PaintDIB(pDC-m_hDC, &rect, pDoc-m_hDIB, &rcDIB, pDoc-m_palDIB);4) 程序流程图 图42. 编写程序进行图像的直方图统计和修正1) 建立灰度直方图对话框设置灰度上下限图5代码实现void CCh1_1View:OnViewIntensity() / 查看当前图像灰度直方图/ 获取文档CCh1_1Doc* pDoc = GetDocument();/ 指向DIB的指针LPSTR lpDIB;/ 指向DIB象素指针LPSTR lpDIBBits;/ 锁定DIBlpDIB = (LPSTR) :GlobalLock(HGLOBAL) pDoc-GetHDIB();/ 找到DIB图像象素起始位置lpDIBBits = :FindDIBBits(lpDIB);/ 判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图,其它的可以类推)if (:DIBNumColors(lpDIB) != 256)/ 提示用户MessageBox(目前只支持查看256色位图灰度直方图!, 系统提示 , MB_ICONINFORMATION | MB_OK);/ 解除锁定:GlobalUnlock(HGLOBAL) pDoc-GetHDIB();/ 返回return;/ 更改光标形状BeginWaitCursor();/ 创建对话框CDlgIntensity dlgPara;/ 初始化变量值dlgPara.m_lpDIBBits = lpDIBBits;dlgPara.m_lWidth = :DIBWidth(lpDIB);dlgPara.m_lHeight = :DIBHeight(lpDIB);dlgPara.m_iLowGray = 0;dlgPara.m_iUpGray = 255;/ 显示对话框,提示用户设定平移量if (dlgPara.DoModal() != IDOK)/ 返回return;/ 解除锁定:GlobalUnlock(HGLOBAL) pDoc-GetHDIB();/ 恢复光标EndWaitCursor();2) 打开位图,进行直方图统计 原始图像直方图统计均衡化后图像直方图统计主要程序代码BOOL CDlgIntensity:OnInitDialog() / 指向源图像象素的指针unsigned char * lpSrc;/ 循环变量LONG i;LONG j;/ 调用默认OnInitDialog函数CDialog:OnInitDialog();/ 获取绘制直方图的标签CWnd* pWnd = GetDlgItem(IDC_COORD);/ 计算接受鼠标事件的有效区域pWnd-GetClientRect(m_MouseRect);pWnd-ClientToScreen(&m_MouseRect);CRect rect;GetClientRect(rect);ClientToScreen(&rect);m_MouseRect.top -= rect.top;m_MouseRect.left -= rect.left;/ 设置接受鼠标事件的有效区域m_MouseRect.top += 25;m_MouseRect.left += 10;m_MouseRect.bottom = m_MouseRect.top + 255;m_MouseRect.right = m_MouseRect.left + 256;/ 重置计数为0for (i = 0; i 256; i +)/ 清零m_lCounti = 0;/ 图像每行的字节数LONG lLineBytes;/ 计算图像每行的字节数lLineBytes = WIDTHBYTES(m_lWidth * 8);/ 计算各个灰度值的计数for (i = 0; i m_lHeight; i +)for (j = 0; j m_lWidth; j +)lpSrc = (unsigned char *)m_lpDIBBits + lLineBytes * i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全员B证考试试卷(综合题)附答案详解
- 2025年护师真题及答案解析
- 市场监管合同范本
- 2025年安全员B证考试试题一附答案详解【完整版】
- 2025年安全员B证考试试题(巩固)附答案详解
- 一建《经济》真题及答案解析(一)
- 2025年学生国旗下主题的演讲稿(19篇)
- 自考毕业生自我鉴定工作
- 国家安全主题课件的价值
- 建造师之二建建设工程施工管理通关考试题库带答案解析
- 2023年海尔差异化战略实施的方法
- 保洁开荒合同保洁开荒合同
- 吉利NPDS流程和PPAP介绍
- 服务费合同服务费合同
- 李阳英语十大经典学习方法及精选美文
- XX设立创业投资基金可行性研究报告
- 橡胶零件外观检验知识培训
- GB/T 9808-2008钻探用无缝钢管
- GB/T 8918-1996钢丝绳
- GB/T 16898-1997难燃液压液使用导则
- 新版《FMEA(第五版)》学习笔记(完整版)
评论
0/150
提交评论