1、基于VC+的数字图像处理软件的开发基于VC+的数字图像处理软件的开发摘要:随着科学技术的飞速发展,计算机使用领域的不断开拓,一种全新的 图像处理方法一一数字图像处理技术应运而生,即利用计算机设备将图像转变成 数字信息来进行保存、处理、传输和显示。目前,数字图像处理技术被广泛使用 在众多的领域,而且其处理精度比较高,所以,开发一个好的数字图像处理软件 至关重要。本文设计了一个基于 VC+勺数字图像处理系统,系统中包括图像处理技术 的各个方面,涵盖了数字图像处理领域的大部分算法, 并对相应的算法进行了实 现。本系统具有很强的可移植性和扩展性。本文以BMP文件的读写为切入点,相继介绍了图像处理领域的
2、大部分算法: 图像几何变换、正交变换、图像增强、边缘检测,并详细论述了各个算法的实现 过程,对主要算法的实际使用效果进行了分析。 实验结果表明系统能够满足图像 处理的基本要求,而且还可以针对不同的处理目的, 灵活地对图像处理算法进行 改进,从而选择出最优处理算法,达到期望的处理效果。为了方便用户观察处理 结果,更好的理解算法,本文设计了一个友好的图形用户界面,此界面操作简单, 使用方便,为数字图像处理处理算法的研究人员提供了一个很好的图像处理平 台。关键词:数字图像处理,VC+ BMP、前言图像是人类获取信息、表达信息和传递信息的重要手段。人出生以后第一次 睁开眼睛,首先接收的就是各种各样的图
3、像信息, 因此有人说,图像和生俱来是 人类生活中最直观、最丰富和最生动的信息表示形式。 国外学者曾做过统计,人 们从外界所获取的信息有70%以上来自于视觉摄取的图像,和文字或者语言信息 相比,图像包含的信息量更大,具有更广泛的适用性和更高的使用效率。 在当今 科学技术迅速发展的时代,人们越来越多的利用图像信息来认识和判断事物, 解决实际问题。既然图像处理如此重要,那么开发一个好的数字图像处理软件也是十分必要 的。MATLAB软件虽然能够对数字图像进行方便的处理,并且其制作的界面也比 较友好,但是由于其过于庞大,移植性和速度方面也很难和 VC+井目比。另外,由于商业化的VC+数字图像处理软件价格
4、比较昂贵,而且不便于二次开发,所 以自己利用VC+集成开发环境开发一套简单的数字图像处理软件系统,本系统 界面友好,不但能对现代光学测量中散斑和条纹图像进行良好的处理, 而且还能够满足一些简单的数字图像处理的需求,为以后的学习和研究奠定了基础。、软件界面设计用户界面是指用户和计算机之间进行交互通信联系的平台, 并出现了多种形式的人机交互方式,从早期计算机使用的命令行的交互方式到以图形界面 (GUI) 为主的交互形式。GUI的广泛使用极大的方便了非专业用户的使用,人们不再需 要死记硬背大量的命令,取而代之的是可用通过窗口、菜单、按钮等方式来方便 的进行操作。图形界面给用户带来了操作和控制的方便和
5、灵活性, 所以它在人机交互方式中占主导地位。考虑到图像处理操作的简单方便,本系统采用多重文档界面( MD)它的特点是允许多个框架窗口存在,每次能创建和拥有多个文档对象,也允许打开多个 文档。根据Windows的界面标准和本软件的功能设计,软件的主菜单中包括文件、 编辑、查看、窗口、几何变换、点运算、图像增强、形态学变换、边缘和轮廓、 帮助等菜单项,本系统软件界面如图2-1所示。每一个主菜单相应的会有几个子 菜单,同时,通过对话框操作可实现图像的交互处理。 下面我们以边缘和轮廓处 理中的轮廓提取为例,通过主菜单、子菜单、对话框来实现图像的轮廓提取操作。图2-1软件界面示意图三、图像处理软件设计软
6、件本身功能包括五个模块,分别是:几何变换模块、点运算模块、图像增 强模块、形态学变换模块、边缘和轮廓模块。几何变换模块包括:图像旋转、图 像缩放、图像转置、水平镜像、垂直镜像。点运算模块包括:灰度化、灰度直方 图。图像增强模块包括:图像平滑、梯度锐化、拉普拉斯锐化。形态学变换模块 包括:腐蚀、膨胀、开运算、闭运算。边缘和轮廓模块包括:边缘检测、轮廓提 取、轮廓跟踪。功能结构图如图3-1。本文将就重要部分进行介绍。图3-1软件功能结构图3.1 VC+图像格式3.1.1位图结构BMP位图文件格式是Windows系统交换图像数据的一种标准图像文件存储格 式,在 Windows环境下运行的所有图像处理
7、软件都支持这种格式。 Windows 3.0以前的BMP位图文件格式和显示设备有关,因此把它称为DDB文件格式,Windows 3.0以后的BMP位图格式和显示设备无关,因此把它称为DIB文件格式,目的是 为了让Windows能够在任何类型的显示设备上显示 BMP位图文件。一个BMP文件 由4个部分组成:位图文件头、位图信息头、调色板和像素数据。如图 3-2所示。位图文件头 BITMAPFILEHEADER位图信息头 BITMAPINFOHEADER调色板Palette实际的位图数据ImageData图3-2 BMP图像文件结构示意图1.BMP文件头BMP文件头数据结构含有BMP文件的类型、文
8、件大小和位图起始位置等信息。 其定义如下:typedef struct tagBITMAPFILEHEADERWORD bfTypeDWORD bfSizeWORD bfReserved1WORD bfReserved2DWORD bfOffBits BITMAPFILEHEADER;参数bfType指定位图文件类型的识别代码,例如 BMP为BM等,该参数必 须为BM参数bfSize指定位图文件的大小,以字节为单位。参数bfReserved1和bfReserved2为保留字,需要将其设为 0 。参数bfOffBits 指定位图数据的起始位置,以相对于位图文件头的偏移量并以字节为单位来表示。2.
9、位图信息头BMP位图信息头包含了单个像素所用字节数以及描述颜色的格式, 此外还包 括位图的宽度、高度、目标设备的位平面数以及图像的压缩格式。第二部分为位 图信息头BITMAPINFOHEADE也是一个结构,该结构的定义如下:typedef struct tagBITMAPINFOHEADERDWORD biSizeLONG biWidthLONG biHeightWORD biPla nesWORD biBitCou ntDWORD biCompressio nDWORD biSizeimageLONG biXPelsPerMeterLONG biYPelsPerMeterDWORD biCl
10、rUsedDWORD biClrImporta nt BITMAPINFOHEADER;参数biSize指定结构的字节数。参数biWidth和biHeight指定位图的宽度和高度,以像素为单位。参数biPlanes表示目标设备的级别,必须是 1 。参数biBitCount指定每个像素所需的位数,其值必须为 1 (黑白二色图)、 4( 16色图)、8 (256色)、24 (真彩色图)。参数biCompression指定位图压缩类型,其值必须是0,1或2 ,其中0为 不压缩,1代表BI_RLE8压缩类型,2为BI_RLE4压缩类型。参数biSizeimage指定实际的位图数据占用的字节数。3.调色
11、版调色板实际上定义为是一个数组,用于说明位图中的颜色,它包含 biCIrUsed个元素,每个元素代表一种颜色,并由一个 RGBQUA类型的结构来表 示,RGBQUA结构的定义如下:typedef struct tagRGBQUADBYTE rgbBIue / 该颜色的蓝色分量BYTE rgbGree n / 该颜色的绿色分量BYTE rgbRed /该颜色的红色分量BYTE rgbReserved / 保留值 RGBQUAD;调色板中RGBQUA结构数据的个数由位图信息头中参数 biBitCount来确定。4.位图数据位图数据记录了位图的每一个像素值, 记录顺序在扫描行内是从左到右,扫 描行之
12、间从上到下,Windows规定一个扫描行所占的字节数必须是 4的倍数,不 足的以0填充。位图的一个像素值所占的字节数如下:当 biBitCount=1时,8个像素占一个字节。当 biBitCount=4时,2个像素占一个字节。当 biBitCount=8时,1个像素占一个字节。当 biBitCount=24时,1个像素占3个字节3.1.2设备无关位图Windows系统使用的位图常分为设备相关位图(DDB和设备无关位图(DIB) 两种。其中DDB依赖于具体的图像输出设备,它只能存在于视频内存或系统内存 中,其颜色模式必须和输出设备相一致。因此我们不会把 DDB图像存储成文件,而是更多地使用DIB
13、。DIB不依赖于具体输出设备,和所有显示设备兼容,因为 DIB的颜色模式和设备无关,而且它自带颜色信息。DIB的设备无关性使得其可以被用来永久地 保存图像,因此DIB既可以保存在内存中,也可以以文件形式保存在磁盘上。DIB 通常以BMP为文件扩展名的形式保存在磁盘中的。3.2几何变换模块图像几何变换又称为图像空间变换,它是数字图像处理的重要内容之一。通 过几何变换,可以根据使用的需要使原图像产生大小、形状和位置等各方面的变 化。从变换性质来分,几何变换可以分为图像的旋转、缩放、转置、镜像、平移 等等。在这里我们只介绍基本的图像的旋转。3.2.1图像的旋转图像的旋转变换是几何变换中研究的重要内容
14、之一。一般情况下,图像的旋转是指将图像围绕某一指定点旋转一定的角度。旋转通常也会改变图像的大小, 和图像平移一样,可以把转出显示区域的图像截去,也可以改变输出图形的大小 以扩展显示范围。以任意点为中心的图像旋转即是将图像平移和旋转操作相结合, 先进行坐标系平移,再以新的坐标原点为中心旋转,然后将新原点平移回原坐标系的原点。 这一过程可分为以3个步骤:(1)将坐标系I变成U。(2)将该点顺时针旋转9角。(3)将坐标系U变回I。下面我们以围绕图像中心的旋转为例, 具体说明上述的变换过程。坐标系I 以图像左上角点为坐标原点,向右为x轴正方向,向下为y轴正方向;而坐标系 U是以图像的中心为原点,向右为
15、x轴正方向,向上为y轴正方向。如图3-3所 示。图3-3图像旋转示意图 本软件进行图像旋转功能如图3-4 :图3-4图像旋转3.3点运算模块点运算模块包括图片的灰度化、灰度直方图功能。这里只介绍灰度直方图功 能。3.3.1灰度直方图灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度级内容。任何一幅图像的直方图都包含了客观的信息, 某些类型的图像还可由其直方图完全描述。灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数。横坐标表示像素的灰度级别;纵坐标是该灰度出现的频率 (像素的个数)。本软件对图像的灰度直方图统计效果如图 3-5 :图3-5灰度直方图3.4形态学变换模块341腐蚀把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有 满足上述条件的a点组成的集合称做X被B腐蚀的结果。用公式表示为:E(X)=a| Ba _X=X :B,如图 3-6 所示。图3-6 腐蚀的示意图图3-6中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴 影部分的点a,Ba包含于X,所以X被B腐蚀的结果就是那个阴影部分。本软件进行腐蚀的效果如下,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1