基于VC++的数字图像处理软件的开发Word格式.docx
- 文档编号:13867390
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:14
- 大小:713.19KB
基于VC++的数字图像处理软件的开发Word格式.docx
《基于VC++的数字图像处理软件的开发Word格式.docx》由会员分享,可在线阅读,更多相关《基于VC++的数字图像处理软件的开发Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
在当今科学技术迅速发展的时代,人们越来越多的利用图像信息来认识和判断事物,解决实际问题。
既然图像处理如此重要,那么开发一个好的数字图像处理软件也是十分必要的。
MATLAB软件虽然能够对数字图像进行方便的处理,并且其制作的界面也比较友好,但是由于其过于庞大,移植性和速度方面也很难和VC++相比。
另外,由于商业化的VC++数字图像处理软件价格比较昂贵,而且不便于二次开发,所以自己利用VC++集成开发环境开发一套简单的数字图像处理软件系统,本系统界面友好,不但能对现代光学测量中散斑和条纹图像进行良好的处理,而且还能够满足一些简单的数字图像处理的需求,为以后的学习和研究奠定了基础。
二、软件界面设计
用户界面是指用户和计算机之间进行交互通信联系的平台,并出现了多种形式的人机交互方式,从早期计算机使用的命令行的交互方式到以图形界面(GUI)为主的交互形式。
GUI的广泛使用极大的方便了非专业用户的使用,人们不再需要死记硬背大量的命令,取而代之的是可用通过窗口、菜单、按钮等方式来方便的进行操作。
图形界面给用户带来了操作和控制的方便和灵活性,所以它在人机交互方式中占主导地位。
考虑到图像处理操作的简单方便,本系统采用多重文档界面(MDI),它的特点是允许多个框架窗口存在,每次能创建和拥有多个文档对象,也允许打开多个文档。
根据Windows的界面标准和本软件的功能设计,软件的主菜单中包括文件、编辑、查看、窗口、几何变换、点运算、图像增强、形态学变换、边缘和轮廓、帮助等菜单项,本系统软件界面如图2-1所示。
每一个主菜单相应的会有几个子菜单,同时,通过对话框操作可实现图像的交互处理。
下面我们以边缘和轮廓处理中的轮廓提取为例,通过主菜单、子菜单、对话框来实现图像的轮廓提取操作。
图2-1软件界面示意图
三、图像处理软件设计
软件本身功能包括五个模块,分别是:
几何变换模块、点运算模块、图像增强模块、形态学变换模块、边缘和轮廓模块。
几何变换模块包括:
图像旋转、图像缩放、图像转置、水平镜像、垂直镜像。
点运算模块包括:
灰度化、灰度直方图。
图像增强模块包括:
图像平滑、梯度锐化、拉普拉斯锐化。
形态学变换模块包括:
腐蚀、膨胀、开运算、闭运算。
边缘和轮廓模块包括:
边缘检测、轮廓提取、轮廓跟踪。
功能结构图如图3-1。
本文将就重要部分进行介绍。
图3-1软件功能结构图
3.1VC++图像格式
3.1.1位图结构
BMP位图文件格式是Windows系统交换图像数据的一种标准图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。
Windows3.0以前的BMP位图文件格式和显示设备有关,因此把它称为DDB文件格式,Windows3.0以后的BMP位图格式和显示设备无关,因此把它称为DIB文件格式,目的是为了让Windows能够在任何类型的显示设备上显示BMP位图文件。
一个BMP文件由4个部分组成:
位图文件头、位图信息头、调色板和像素数据。
如图3-2所示。
图3-2BMP图像文件结构示意图
1.BMP文件头
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其定义如下:
typedefstructtagBITMAPFILEHEADER{
WORDbfType
DWORDbfSize
WORDbfReserved1
WORDbfReserved2
DWORDbfOffBits
}BITMAPFILEHEADER;
参数bfType指定位图文件类型的识别代码,例如BMP为BM等,该参数必须为BM。
参数bfSize指定位图文件的大小,以字节为单位。
参数bfReserved1和bfReserved2为保留字,需要将其设为0。
参数bfOffBits指定位图数据的起始位置,以相对于位图文件头的偏移量并以字节为单位来表示。
2.位图信息头
BMP位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数以及图像的压缩格式。
第二部分为位图信息头BITMAPINFOHEADER,也是一个结构,该结构的定义如下:
typedefstructtagBITMAPINFOHEADER{
DWORDbiSize
LONGbiWidth
LONGbiHeight
WORDbiPlanes
WORDbiBitCount
DWORDbiCompression
DWORDbiSizeImage
LONGbiXPelsPerMeter
LONGbiYPelsPerMeter
DWORDbiClrUsed
DWORDbiClrImportant
}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.调色版
调色板实际上定义为是一个数组,用于说明位图中的颜色,它包含biClrUsed个元素,每个元素代表一种颜色,并由一个RGBQUAD类型的结构来表示,RGBQUAD结构的定义如下:
typedefstructtagRGBQUAD{
BYTErgbBlue//该颜色的蓝色分量
BYTErgbGreen//该颜色的绿色分量
BYTErgbRed//该颜色的红色分量
BYTErgbReserved//保留值
}RGBQUAD;
调色板中RGBQUAD结构数据的个数由位图信息头中参数biBitCount来确定。
4.位图数据
位图数据记录了位图的每一个像素值,记录顺序在扫描行内是从左到右,扫描行之间从上到下,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。
DIB不依赖于具体输出设备,和所有显示设备兼容,因为DIB的颜色模式和设备无关,而且它自带颜色信息。
DIB的设备无关性使得其可以被用来永久地保存图像,因此DIB既可以保存在内存中,也可以以文件形式保存在磁盘上。
DIB通常以BMP为文件扩展名的形式保存在磁盘中的。
3.2几何变换模块
图像几何变换又称为图像空间变换,它是数字图像处理的重要内容之一。
通过几何变换,可以根据使用的需要使原图像产生大小、形状和位置等各方面的变化。
从变换性质来分,几何变换可以分为图像的旋转、缩放、转置、镜像、平移等等。
在这里我们只介绍基本的图像的旋转。
3.2.1图像的旋转
图像的旋转变换是几何变换中研究的重要内容之一。
一般情况下,图像的旋转是指将图像围绕某一指定点旋转一定的角度。
旋转通常也会改变图像的大小,和图像平移一样,可以把转出显示区域的图像截去,也可以改变输出图形的大小以扩展显示范围。
以任意点为中心的图像旋转即是将图像平移和旋转操作相结合,先进行坐标系平移,再以新的坐标原点为中心旋转,然后将新原点平移回原坐标系的原点。
这一过程可分为以3个步骤:
(1)将坐标系Ⅰ变成Ⅱ。
(2)将该点顺时针旋转θ角。
(3)将坐标系Ⅱ变回Ⅰ。
下面我们以围绕图像中心的旋转为例,具体说明上述的变换过程。
坐标系Ⅰ以图像左上角点为坐标原点,向右为x轴正方向,向下为y轴正方向;
而坐标系Ⅱ是以图像的中心为原点,向右为x轴正方向,向上为y轴正方向。
如图3-3所示。
图3-3图像旋转示意图
本软件进行图像旋转功能如图3-4:
图3-4图像旋转
3.3点运算模块
点运算模块包括图片的灰度化、灰度直方图功能。
这里只介绍灰度直方图功能。
3.3.1灰度直方图
灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度级内容。
任何一幅图像的直方图都包含了客观的信息,某些类型的图像还可由其直方图完全描述。
灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数。
横坐标表示像素的灰度级别;
纵坐标是该灰度出现的频率(像素的个数)。
本软件对图像的灰度直方图统计效果如图3-5:
图3-5灰度直方图
3.4形态学变换模块
3.4.1腐蚀
把结构元素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腐蚀的结果就是那个阴影部分。
本软件进行腐蚀的效果如下,图3-7为原图,图3-8为腐蚀后的图片
图3-7原图
图3-8腐蚀后的图片
3.4.2膨胀
膨胀可以看做是腐蚀的对偶运算,其定义是:
把结构元素B平移a后得到Ba,若Ba击中X,我们记下这个a点。
所有满足上述条件的a点组成的集合称做X被B膨胀的结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VC 数字图像 处理软件 开发
![提示](https://static.bdocx.com/images/bang_tan.gif)