数字图像增强软件设计论文.doc
《数字图像增强软件设计论文.doc》由会员分享,可在线阅读,更多相关《数字图像增强软件设计论文.doc(43页珍藏版)》请在沃文网上搜索。
1、2017届毕业生毕业论文题 目: 数字图像增强软件设计 院系名称: 电气工程学院 专业班级: 自动化0903 摘要 本文介绍了图像增强处理两种基本的方法。即如何用灰度修正法和图像平滑处理法对一幅BMP图像灰度及平滑度进行调整处理,从而达到使图像增强的目的。本设计是利用VC 6.0执行的,vc6.0具有效率高,可继承、封装、移植等成熟的软件技术,本文是利用对图像进行灰度直方图均衡化算法及平滑处理法中的邻域平均法算法和选择式掩膜平滑算法来实现对图像的增强以及图像的锐化处理。实验表明,该程序可以快速、准确地对图像进行灰度变换及平滑处理,达到了使图像对比度和平滑度增强,改善图像质量的预期目的。关键词:
2、直方图均衡;邻域平均法;掩膜平滑算法;梯度锐化;拉普拉斯锐化 Title Digital image enhancement based on vc software designAbstract This paper introduces image enhancement processing two basic methods. That is how to use gray correction method and the image smooth processing method to a picture of BMP image gray and smoothness to a
3、djust processing, so as to achieve the purpose of that image enhancement. This design is the use of VC 6.0 execution, vc6.0 has high efficiency, can inherit, packaging, transplantation and mature software technology, this paper is to use to do image gray histogram equalization algorithm and the smoo
4、th process of neighborhood average method algorithm and choose type mask smoothing algorithm is proposed to realize the image enhancement. Results show that, the program can quickly and accurately to do image gray level transformation and smooth processing, to make the image contrast and smoothness
5、strengthen, improve image quality purpose.Keyword: Histogram equalization; Neighborhood average method; Mask smoothing algorithm; Gradient sharpening; Laplace sharpening 目 次一 概述5二 图像处理52.1 BMP文件的读入522 BMP文件图像的增强处理8三 直方图类93.1类的定义103.2 构造函数和析构函数103.3直方图统计103.4直方图的均值和方差113.5编程实现直方图绘制123.6 直方图均衡163.6.1理
6、论基础163.6.2算法实现173.6.3函数调用19四 图像的平滑204.1临域平均法20411.基础理论20412.算法实现21413 函数调用23414.实现结果与分析264.2选择式掩模平滑27421.基本理论27422.算法实现28423 函数调用28424.实验结果与分析29五 图像的锐化305.1梯度锐化305.1.1 算法实现325.1.2 函数调用325.1.3 实验结果与分析335.2 拉普拉斯掩模锐化345.2.1 基本理论345.2.2 算法实现355.2.3 函数调用365.2.4 实验结果与分析37结论39致谢40参考文献41附录1:函数头文件42一 概述由于噪声、
7、光照等外界环境或设备本身的原因,通常我们所获取的原始数字图像质量不是很高,因此在对图像进行边缘检测、图像分割等操作之前,一般都需要对原始数字图像进行增强处理。图像增强主要有两方面应用,一方面是改善图像的视觉效果,另一方面也能提高边缘检测或图像分割的质量,突出图像的特征,便于计算机更有效地对图像进行识别和分析。图像增强是图像处理最关键的研究问题之一,图像增强是指为了将图像中感兴趣的特征有选择地突出,而衰减其不需要的特征,要对灰度图进行灰度修正,图像增强按作用域可分为两类,即空域处理和频域处理。空域处理是直接对图像进行处理,而频域处理则是在图像的某个变化域内,对图像的变换系数进行运算,然后通过逆变
8、换获得图像增强效果。这里主要讲述了用直方图均衡化实现图像增强,能够使图像具有所需要的灰度分布,从而有选择地突出所需要的图像特征.并且利用VC6.0加以实现。当前图像处理在算法实现中主要应用Matlab 仿真工具,但Matlab运行效率较低,且可移植性和实用性均不太理想。与Java和C#等其他高级语言相比,VC 在程序运行效率、内存使用的可控性和编程的灵活性上均具有较大的优势,因此本文采用VC 6.0 集成开发环境,以达到算法快速有效地执行,同时增强了算法的可移植性。二 图像处理2.1 BMP文件的读入 BMP文件分为4个组成部分,那么BMP文件的读入也要按照4个组成部分依次进行处理,即先处理B
9、ITMAPFILEHEADER结构,然后是BITMAPINFOHEADER结构、颜色表,最后是位图数据。首先,有关BITMAPFILEHEADER、BITMAPINFOHEADER、RGBQUAD等结构的定义包含在头文件“Windows.h”中,应该把其包含进来。#include Windows.h其次,为了后面对图像进行修改及存盘方便,我们定义了几个全局变量用来存放读入图像的位图数据、宽、高、颜色表及每像素位数等信息。所以定义的全局变量如下:unsigned char *pBmpBuffer; /bmp像素指针int BmpWidth; /位图的宽度int BmpHeight; /位图的高度
10、RGBQUAD *ColorTable; /颜色表的指针int BmpBit; /每个像素占用位数 根据BMP文件结构,BMP文件读入操作的基本流程图如下图1所示: 图1 BMP文件读入操作流程图readBMP()函数实现了BMP文件的读取操作,下面的代码是对readBMP()函数的说明和实现。BOOL ImgCenterDib:Read(LPCTSTR lpszPathName)CFile file; /读模式打开图像文件if (!file.Open(lpszPathName, CFile:modeRead | CFile:shareDenyWrite)return FALSE;BITMAP
11、FILEHEADER bmfh;try Empty();/清理空间int nCount=file.Read(LPVOID) &bmfh, sizeof(BITMAPFILEHEADER);/异常判断if(nCount != sizeof(BITMAPFILEHEADER) throw new CException;if(bmfh.bfType != 0x4d42) throw new CException;if(m_lpDib!=NULL) /为m_lpDib分配空间,读取DIB进内存delete m_lpDib;m_lpDib=new BYTEfile.GetLength() -sizeof
12、(BITMAPFILEHEADER);file.Read(m_lpDib, file.GetLength() -sizeof(BITMAPFILEHEADER);/m_lpBmpInfoHead位置为m_lpDib起始位置m_lpBmpInfoHead = (LPBITMAPINFOHEADER)m_lpDib;m_imgWidth=m_lpBmpInfoHead-biWidth;m_imgHeight=m_lpBmpInfoHead-biHeight;m_nBitCount=m_lpBmpInfoHead-biBitCount; /计算颜色表长度m_nColorTableLength=Com
13、puteColorTabalLength(m_lpBmpInfoHead-biBitCount);/如果有颜色表,则创建逻辑调色板m_hPalette = NULL;if(m_nColorTableLength!=0)m_lpColorTable=(LPRGBQUAD)(m_lpDib+sizeof(BITMAPINFOHEADER); MakePalette();/m_pImgData指向DIB的位图数据起始位置m_pImgData = (LPBYTE)m_lpDib+sizeof(BITMAPINFOHEADER) +sizeof(RGBQUAD) * m_nColorTableLengt
14、h;catch(CException* pe) AfxMessageBox(Read error);pe-Delete();return FALSE;/函数返回return TRUE;BMP文件读入的结果如图2所示图2 BMP文件读入22 BMP文件图像的增强处理图像增强处理的方法有很多,这里主要应用两种方法:一、图像灰度修正;二、直方图修正。灰度修正是图像在空间域中增强的简单而有效的方法,通常根据图像不同的降质现象而采用不同的修正方法。常用的方法主要有三种:一是灰度级校正;二是灰度变换;三是直方图修正。可以根据不同的图像质量采用适当的灰度校正方法。本文主要采用直方图修正。直方图修正是图像增强
15、的最常用、最重要的方法之一。所谓直方图校正,是指通过构造灰度级变换,改造原图像的直方图,而是变换后的图像的直方图达到一定的要求,有时甚至直接给出直方图的形状,希望找到某个灰度级的变换,是原图像的直方图变成某个给定的形式。采用直方图修正可使原图像灰度级集中的区域拉开,从而增大反差,使图像的细节清晰,达到增强的目的。图像的直方图反映图像灰度的统计特性,表达了图像中去不同灰度值的面积或像素数在整幅图像中所占比例,是图像中最基本的信息。直方图的横坐标是灰度级,一般用r表示,纵坐标是具有该灰度级的像素个数或出现这个灰度级的概率P()。P()=/N式中,N为一幅图像中像素的总数,为第k级灰度的像素数,表示
16、第k个灰度级,P()表示该灰度级出现的概率。因为P()给出了对出现概率的一个估计,所以直方图提供了源图的灰度值分布情况。图像直方图灰度级的分布形态可以提供图像信息的许多特征,为图像分析提供一个有力的工具。例如,若直方图密集的分布在狭窄的区域之内,说明图像的对比度很低;若直方图有两个峰值,则说明图像中有可能存在两种不同亮度的区域。三 直方图类虽然直方图均衡属于灰度变换的范畴,由于直方图相关属性和操作与灰度线性变换相差很远。因此以ImgCenterDib为直方图单独创造一个类Histogram类,实现了直方图相关的属性和操作的封装。3.1类的定义Histogram类的定义和实现在文件“histog
17、ram.h”和“histogram.cpp”中“histogram.h”的程序源代码见附录1。3.2 构造函数和析构函数类的构造函数用来完成数据成员的初始化工作,系统在创造类的对象的自动调用构造函数。类的析构函数用来放被分配的内存空间,当类的对象消失时系统自动调用该函数。以下是Histogram类的构造函数和析构函数的说明及代码实现。Histogram:Histogram()for(int i=0;i256;i+)/直方图数组清0 m_histArrayi=0;m_average=0;/均值为0m_deviation=0;/方差为0 m_pImgDataOut=NULL;/输出图像位图数据指针
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 增强 软件设计 论文