数字图像处理毕业设计

安徽建筑大学毕业设计(论文)

毕 业 设 计 (论 文)

专 业 电子信息工程

班 级

学生姓名

学 号

课 题 数字图像处理方法研究与实现

——基于VC++的图像增强实现

指导教师

摘 要

图像在传送和转换时会造成图像的某些降质,所以有必要对降质的图像进行改善处理。其中的一种方法是不考虑图像质量降低的原因,只将图像中感兴趣的特征有选择的突出,从而衰减次要信息。这种方法能够提高图像的可读性,改善后的图像不一定逼近原始图像,但能够突出目标的轮廓、衰减各种噪声、将黑白图像转换成色彩图形等。这类方法通常称为图像增强技术。

图像增强技术通常有两种方法:空间域法和频率域法。空间域法主要是在空间域中对图像像素灰度值直接进行运算处理。本文围绕空间域法,对数字图像的增强处理进行了研究,着重介绍其中的直方图、直方图均衡化及图像平滑处理中的邻域平均和中值滤波。并利用VC++实现上述方法对图像的处理。

关键词:图像增强;直方图;图像平滑;邻域平均;中值滤波

Abstract

The image in the transmission and conversion cases will cause some blurred image, so,it is necessary for the image to have an improved treatment. One way is to not consider the reasons for degradation of image quality, the characteristics of the image selected outstanding, thereby attenuating less important information. This method can improve the readability of the image, the image after improvement is not necessarily approximate to the original image, such as highlighting the outline of the target, the attenuation of noise, the black and white images into color graphics. This kind of method is usually called the image enhancement technology.

Image enhancement technology usually has two kinds of methods: spatial domain and frequency domain method. The spatial domain method is direct computation of pixel gray values in the spatial domain. This paper focuses on the spatial domain method, enhancement of digital image processing are studied, emphatically introduces the histogram equalization and histogram of image smoothing, neighborhood averaging and median filtering. And VC++ is used to realize the method for image processing.

Keywords :Image Enhancement; Histogram; Image smooth; Neighborhood averaging; Median filtering

目 录

摘 要 ............................................................. II Abstract .......................................................... III

1 绪论 .............................................................. 1

1.1课题背景 . .......................................................................................................... 1

1.2 图像增强的研究及发展现状 . ....................................................................... 2

1.3 论文组织结构 . ............................................................................................... 3

2 图像增强的基本理论 ................................................ 4

2.1 数字图像的基本理论 . ................................................................................... 4

2.1.1数字图像的表示 . ........................................................................................... 4

2.1.2图像的灰度 . ................................................................................................... 4

2.1.3灰度直方图 . ................................................................................................... 4

2.2 数字图像增强概述 . ......................................................................................... 4

2.3 图像增强概述 . ................................................................................................. 6

2.3.1图像增强的定义 . ........................................................................................... 6

2.3.2常用的图像增强方法 . ................................................................................... 6

2.4 图像增强流程图 . ........................................................................................... 8

2.5本章小结 . .......................................................................................................... 8

3 图像增强方法与原理 ................................................ 9

3.1 直方图变换 . ..................................................................................................... 9

3.1.1直方图修正基础 . ........................................................................................... 9

3.1.2直方图均衡化 . ............................................................................................. 10

3.2 图像平滑 . ....................................................................................................... 11

3.2.1图像平滑 . ..................................................................................................... 11

3.2.2邻域平均 . ..................................................................................................... 11

3.2.3中值滤波 . ..................................................................................................... 12

3.4本章小结 . ........................................................................................................ 12

4 VC++6.0以及图像增强的实现 . ....................................... 13

4.1 VC++6.0简介 . ................................................................................................ 13

4.1.1 VC++6.0 简介 . ............................................................................................ 13

4.1.2开发环境 . ..................................................................................................... 13

4.1.3 图片应用程序的创建 . ................................................................................ 14

4.2图像增强实现方法 . ........................................................................................ 14

4.2.1灰度修正的实现 . ......................................................................................... 14

4.2.2邻域平均的实现 . ......................................................................................... 18

4.2.3中值滤波的实现 . ......................................................................................... 19

4.3本章小结 . ........................................................................................................ 21

5总结与展望 . ....................................................... 22

5.1总结 . ................................................................................................................ 22

5.2展望 . ................................................................................................................ 22

参考文献 ........................................................... 23

致谢 ............................................................... 24

附录 ............................................................... 25

部分程序代码 . ...................................................................................................... 25

1. 读入图片 . ........................................................................................................... 25

2. 绘制直方图 . ....................................................................................................... 25

3. 灰度直方图 . ....................................................................................................... 26

4. 直方图均衡化 . ................................................................................................... 27

安徽建筑大学毕业设计(论文)

数字图像处理方法研究与实现

——基于VC++的图像增强实现

电子与信息工程学院 电子信息工程 10电子1班 胡水清 [1**********]

指导老师 宋杨

1 绪论

数字图像处理是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。

1.1课题背景

数字图像处理技术是20世纪60年代随着计算机技术的发展而产生、发展和不断成熟起来的一个新兴技术领域,它在理论上和实际应用中都取得了巨大的成就。

视觉是人类最重要的感知手段,图像又是视觉的基础。早期图像处理的目的是改善图像质晕,它以人为对象,以改善人的视觉效果为目的。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得成功应用的是美国喷气推进实验室(JPL )。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片进行图像处理,如:几何校正、灰度变换、去除噪声,获得了巨大的成功。随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,获得月球的地形图、彩色图及全景镶嵌图,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。在以后的宇航空间技术探测研究中,数字图像处理技术都发挥巨大的作用。 数字图像处理技术取得的另一个巨大成就是在医学上。1972年英国EMI 公司工程师发明了用于头颅诊断的X 射线计算机断层摄影装置,也就是我们通常所说的CT (Computer Tomography )。1975年EMI 公司又成功研制出全身用的CT 装置,获得了人体各个部位鲜明清晰的断层图像。1979年,这项无损伤诊断技术被授予诺贝尔奖,以表彰它对人类做出的划时代贡献。

从20世纪70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理技术向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,类似人类视觉系统理解外部世界,这被称为图像理解或计算

机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少的重要的研究成果。

20世纪80年代末期,人们开始将其应用于地理信息系统,研究海图的自动读入、自动生成方法。数字图像处理技术的应用领域不断拓展。

数字图像处理技术的大发展是从20世纪90年代初开始的。随后数字图像处理技术迅猛发展,到目前为止,图像处理在图像通讯、办公自动化系统、地理信息系统、医疗设备、卫星照片传输及分析和工业自动化领域的应用越来越多。

进入21世纪,随着计算机技术的迅猛发展和相关理论的不断完善,数字图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就。属于这些领域的有航空航天、生物医学、机器人视觉、公安司法、军事制导、文化艺术等。该技术成为一门引人注目、前景远大的新学科。

1.2 图像增强的研究及发展现状

图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像,有效地去除图像中的噪声、增强图像中的边缘或其他感兴趣的区域,从而更加容易对图像中感兴趣的目标进行检测和测量。处理后的图像是否保持原状已经是无关紧要的了,不会因为考虑到图像的一些理想形式而去有意识的努力重现图像的真实度。图像增强的目的是增强图像的视觉效果,将原图像转换成一种更适合于人眼观察和计算机分析处理的形式。它一般要借助人眼的视觉特性,以取得看起来较好地视觉效果,很少涉及客观和统一的评价标准。增强的效果通常都与具体的图像有关系,靠人的主观感觉加以评价。

图像增强处理的应用已经渗透到医学诊断、航空航天、军事侦察、指纹识别、无损探伤、卫星图片的处理等领域。如对x 射线图片、CT 影像、内窥镜图像进行增强,使医生更容易从中确定病变区域,从图像细节区域中发现问题;对不同时间拍摄的同一地区的遥感图片进行增强处理,侦查是否有敌人军事调动或军事装备及建筑出现;在煤矿工业电视系统中采用增强处理来提高工业电视图像的清晰度,克服因光线不足、灰尘等原因带来的图像模糊、偏差等现象,减少电视系统维护的工作量。图像增强技术的快速发展同它的广泛应用是分不开的,发展的动力来自稳定涌现的新的应用,我们可以预料,在未来社会中图像增强技术将会发挥更为重要的作用。

在图像处理过程中,图像增强是十分重要的一个环节。本文的主要内容就是围绕图像增强部分的一些基本理论,并利用VC++实现图像的增强处理而展开的。

1.3 论文组织结构

数字图像处理方法研究与实现。本文主要是对数字图像处理方法中的图像增强的方法进行了研究,并利用VC++实现处理方法,其组织结构如下: 第一章:简要介绍了论文的选题背景及其发展现状,对图像增强进行了简要的介绍,最后对论文的研究内容和组织结构进行了说明。 第二章:数字图像增强概述,这一部分将会介绍图像增强的定义及基本理论。 第三章:图像增强的方法的介绍,着重介绍了其中的直方图均衡化、邻域平均和中值滤波三种方法。

第四章:在本节介绍了此次研究所使用的软件VC++ 6.0,并详细描述基于该软件的图像增强的实现的操作流程,并对直方图均衡化、邻域平均、中值滤波三种方法处理过后的图像进行对比。 第五章:总结与展望,总结自己针对本课题所做的工作,并对课题的未来发展进行了展望。

2 图像增强的基本理论

2.1 数字图像的基本理论

2.1.1数字图像的表示

图像并不能直接用计算机来处理,处理前必须先转化成数字图像。早期一般用picture 代表图像,随着数字技术的发展,现在都用image 代表离散化了的数字图像。

由于从外界得到的图像多是二维(2-D )的,一幅图像可以用一个2-D 数组f (x , y ) 表示。这里x 和y 表示二维空间X 、Y 中一个坐标点的位置,而f 则代表图像在点(x , y ) 的某种性质数值。为了能够用计算机对图像进行处理,需要坐标空间和性质空间都离散化。这种离散化了的图像都是数字图像,即f (x , y ) 都在整数集合中取值。图像中的每个基本单元称为图像的元素,简称像素。

2.1.2图像的灰度

常用的图像一般是灰度图,这时f 表示灰度值,反映了图像上对应点的亮度。亮度是观察者对所看到的物体表面反射光强的量度。作为图像灰度的量度函数f (x , y ) 应大于零。人们日常看到的图像一般是从目标上反射出来的光组成的,所以f (x , y ) 可看成由两部分构成:入射到可见场景上光的量;场景中目标对反射光反射的比率。确切地说它们分别称为照度成分i (x , y ) 和反射成分r (x , y ) 。f (x , y ) 与i (x , y ) 和r (x , y ) 都成正比,可表示成f (x , y ) =i (x , y ) ×r (x , y ) 。

将二维坐标位置函数f (x , y ) 称为灰度。入射光照射到物体表面的能量是有限的,并且它永远为正,即0

2.1.3灰度直方图

灰度直方图是数字图像处理中一个最简单、最有用的工具,它反映了数字图像中每一灰度级与其出现频率之间的统计关系。可以有针对性地通过改变直方图的灰度分布状况,使灰度均匀地或按预期目标分布于整个灰度范围空间,从而达到图像增强的效果。

2.2 数字图像增强概述

随着数字技术的不断发展和应用,现实生活中的许多信息都可以用数字形式

的数据进行处理和存储,数字图像就是这种以数字形式进行存储和处理的图像。利用计算机可以对它进行常现图像处理技术所不能实现的加工处理,还可以将它在网上传输,可以多次拷贝而不失真。数字图像处理亦称为计算机图像处理,指将图像信号转换成数字格式并利用计算机对其进行处理的过程。

数字图像处理系统主要由图像采集系统、数字计算机及输出设备组成。 如图2.1所示。

图2.1 图像处理系统组成图

图2.1仅仅是图像处理的硬件设备构成,图中并没有显示出软件系统,在图像处理系统中软件系统同样是非常重要的。在图像获取的过程中,由于设备的不完善及光照等条件的影响,不可避免地会产生图像降质现象。影响图像质量的几个主要因素是:

(1)随机噪声,主要是高斯噪声和椒盐噪声,可以是由于相机或数字化设备产生,也可以是在图像传输过程中造成的;

(2)系统噪声,由系统产生,具有可预测性质;

(3)畸变,主要是由于相机与物体相对位置、光学透镜曲率等原因造成的,可以看作是真实图像的几何变换。

数字图像处理流程如图2.2所示,从一幅或是一批图像的最简单的处理,如特征增强、去噪、平滑等基本的图像处理技术,到图像的特征分析和提取,进而产生对图像的正确理解或者遥感图像的解译,最后的步骤可以是通过专家的视觉解译,也可以是在图像处理系统中通过一些知识库而产生的对图像的理解。

图2.2 图像处理流程图

2.3 图像增强概述

2.3.1图像增强的定义

图像增强是指按特定的需要突出一幅图像中的某些信息,同时削弱或去除某些不需要的信息的处理方法,也是提高图像质量的过程。图像增强的目的是使图像的某些特性方面更加鲜明、突出,使处理后的图像更适合人眼视觉特性或机器分析,以便于实现对图像的更高级的处理和分析。图像增强的过程往往也是一个矛盾的过程:图像增强希望既能去除噪声又增强边缘。但是,增强边缘的同时会同时增强噪声,而滤去噪声又会使边缘在一定程度上模糊,因此,在图像增强的时候,往往是将这两部分进行折中,找到一个好的代价函数达到需要的增强目的。传统的图像增强算法在确定转换函数时常是基于整个图像的统计量,如:ST 转换,直方图均衡,中值滤波,微分锐化,高通滤波等等。这样对应于某些局部区域的细节在计算整幅图的变换时其影响因为其值较小而常常被忽略掉,从而局部区域的增强效果常常不够理想,噪声滤波和边缘增强这两者的矛盾较难得到解决。

2.3.2常用的图像增强方法

图像增强可分成两大类:频率域法和空间域法。前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。具有代表性的空间域算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。

图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖) 图像中某些不需要的特征,使图像与视觉响应特性相匹配。在图像增强过程中,不分析图像降质的原因,处理后的图像不一定逼近原始图像。图像增强技术根据增强处理过程所在的空间不同,可分为基于空间域的算法和基于频率域的算法两大类。基于空间域的算法处理时直接对图像灰度级做运算;基于频率域的算法是在图像的某种变换域内对图像的变换系数值进行某种修正,是一种间接增强的算法。

基于空间域的算法分为点运算算法和邻域去噪算法。点运算算法即灰度级校正、灰度变换和直方图修正等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。邻域增强算法分为图像平滑和锐化两种。平滑一般用于消除图像噪

声,但是也容易引起边缘的模糊。常用算法有均值滤波、中值滤波。锐化的目的在于突出物体的边缘轮廓,便于目标识别。常用算法有梯度法、算子、高通滤波、掩模匹配法、统计差值法等。

(1)直方图均衡化

有些图像在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。这时可以通过直方图均衡化将图像的灰度范围分开,并且让灰度频率较小的灰度级变大,通过调整图像灰度值的动态范围,自动地增加整个图像的对比度,使图像具有较大的反差,细节清晰。

(2)对比度增强法

有些图像的对比度比较低,从而使整个图像模糊不清。这时可以按一定的规则修改原来图像的每一个像素的灰度,从而改变图像灰度的动态范围。

(3)平滑噪声

有些图像是通过扫描仪扫描输入或传输通道传输过来的。图像中往往包含有各种各样的噪声。这些噪声一般是随机产生的,因此具有分布和大小不规则性的特点。这些噪声的存在直接影响着后续的处理过程,使图像失真。图像平滑就是针对图像噪声的操作,其主要作用是为了消除噪声,图像平滑的常用方法是采用均值滤波或中值滤波,均值滤波是一种线性空间滤波,它用一个有奇数点的掩模在图像上滑动,将掩模中心对应像素点的灰度值用掩模内所有像素点灰度的平均值代替,如果规定了在取均值过程中掩模内各像素点所占的权重,即各像素点所乘系数,这时就称为加权均值滤波;中值滤波是一种非线性空间滤波,其与均值滤波的区别是掩模中心对应像素点的灰度值用掩模内所有像素点灰度值的中间值代替。

2.4 图像增强流程图

图2-3 图像增强流程图

2.5本章小结

本章主要是介绍关于图像增强的基本理论,对图像增强的中的一些概念就行了阐述,介绍了一些常用的图像增强的方法,同时,对图像增强的流程做了大体上的介绍。

3 图像增强方法与原理

3.1 直方图变换

3.1.1直方图修正基础

图像的灰度直方图是反映一幅图像的灰度级与出现这种灰度级的概率之间的关系的图形。

灰度级为[0,L-1]范围的数字图像的直方图是离散函数h(r k )=n k ,这里r k 是第k 级灰度,n k 是图像中灰度级为r k 的像素个数。通常以图像中像素数目的总和n 去除他的每一个值,以得到归一化的直方图,公示如下:

P (r k ) =n k /n k=0,1,2,„,L-1

P (r ) =1∑且 k

K =1L -1

因此P (r k ) 给出了灰度级为r k 发生的概率估计值。归纳起来,直方图主要有一下几点性质:

(1)直方图中不包含位置信息。直方图只是反应了图像灰度分布的特性,和灰度所在的位置没有关系,不同的图像可能具有相近或者完全相同的直方图分布。

(2)直方图反应了图像的整体灰度。直方图反应了图像的整体灰度分布情况,对于暗色图像,直方图的组成集中在灰度级低(暗)的一侧,相反,明亮图像的直方图则倾向于灰度级高的一侧。直观上讲,可以得出这样的结论,若一幅图像其像素占有全部可能的灰度级并且分布均匀,这样的图像有高对比度和多变的灰度色调。

(3)直方图的可叠加性。一幅图像的直方图等于它各个部分直方图的和。

(4)直方图具有统计特性。从直方图的定义可知,连续图像的直方图是一位连续函数,它具有统计特征,例如矩、绝对矩、中心矩、绝对中心矩、熵。

(5)直方图的动态范围。直方图的动态范围是由计算机图像处理系统的模数转换器的灰度级决定。由于图像的视觉效果不好或者特殊需要,常常要对图像的灰度进行修正,以达到理想的效果,即对原始图像的直方图进行转换(修正):

一幅给定的图像的灰度级分布在0≤r ≤1范围内。可以对[0,1]区间内的任何一个r 进行如下的变换:

s=T(r)

变换函数T 应满足以下条件:

a. 在0≤r ≤1区间内,T (r ) 单值单调增加;

b. 对于0≤r ≤1,有0≤T (r ) ≤1。

这里的第一个条件保证了图像的灰度级从白到黑的次序不变。第二个条件则保证了映射变换后的像素灰度值在允许的范围内。满足这两个条件,就保证了转换函数的可逆。

3.1.2直方图均衡化

直方图均衡化方法是图像增强中最常用、最重要的方法之一。直方图均衡化是把原图像的直方图通过灰度变换函数修正为灰度均匀分布的直方图,然后按均衡直方图修正原图像。它以概率论为基础,运用灰度点运算来实现,从而达到增强的目的。它的变换函数取决于图像灰度直方图的累积分布函数。概括的说,就是把一已知灰度概率分布的图像,经过一种变换,使之演变成一幅具有均匀概率分布的新图像。有些图像在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。这时可以将图像的灰度范围分开,并且让灰度频率较小的灰度级变大。当图像的直方图为一均匀分布时,图像的信息熵最大,此时图像包含的信息量最大,图像看起来就显得清晰。

直方图均衡化变换函数如图3.2所示,设r ,s 分别表示原图像和增强后图像的灰度。为了简单,假定所有像素的灰度已被归一化。当r=s=0时,表示黑色;当r=s=1时,表示白色;当r ,s 在[0,1]之间时,表示像素灰度在黑白之间变化。灰度变换函数为:s=T(r)。

S

图3.2 直方图均衡化变换函数

实际上,由于直方图是近似的概率密度函数,用离散灰度级作变换时很少能够得到完全平坦的结果,而且,变换后往往会出现灰度级减少的现象,这种现象被称为“简并”现象。这是像素灰度有限的必然结果。由于上述原因,数字图像的直方图均衡只能是近似的。直方图均衡化处理可大大改善图像灰度的动态范围。减少简并现象通常可采用两种方法:一种简单的方法是增加像素的比特数。

比如,通常用8比特来代表一个像素,而现在用12比特来表示一个像素,这样就可以减少简并现象发生的机会,从而减少灰度层次的损失。另外,采用灰度间隔放大理论的直方图修正方法也可以减少简并现象。这种灰度间隔放大可以按照眼睛的对比度灵敏特性和成像系统的动态范围进行放大。一般实现方法采用如下几步:

(1)统计原始图像的直方图;

(2)根据给定的成像系统的最大动态范围和原始图像的灰度级来确定处理后的灰度级间隔;

(3)根据求得的步长来求变换后的新灰度;

(4)用处理后的新灰度代替处理前的灰度。

3.2 图像平滑

3.2.1图像平滑

获得的图像可能会因为各种原因而被污染,产生噪声。常见的图像噪声主要有加性噪声、乘性噪声和量化噪声等。噪声并不仅限于人眼所见的失真,有些噪声只针对某些具体的图像处理过程产生影响。图像中的噪声往往和正常信号交织在一起,尤其是乘性噪声,如果处理不当,就会破坏图像本身的细节,如会使线条、边界等变得模糊不清。有些图像是通过扫描仪扫描输入或传输通道传输过来的。图像中往往包含有各种各样的噪声。这些噪声一般是随机产生的,因此具有分布和大小不规则性的特点。图像平滑就是针对图像噪声的操作,其主要作用是为了消除噪声。如何既平滑掉噪声又尽量保持图像细节,是图像平滑的主要研究任务。这些噪声的存在直接影响着后续的处理过程,使图像失真。这时可以采用线性滤波和中值滤波的方法。

3.2.2邻域平均

领域平均法是对于给定的图像f(x,y) 中的每一个点(m ,n ),取其领域s 。设s 含有M 个像素,取其平均值作为处理后所得图像像素点(m ,n )处的灰度。

设S 是3*3的正方形邻域,点(m ,n )位于S 中心,则:

11

f (m , n ) =∑9x =-1y =-1∑f (m +x , y +n ) 1

也就是说某个像素点的结果不仅和本像素灰度有关,而且和其邻域点的只有关。

3.2.3中值滤波

中值滤波就是输出图像的某点象素等于该象素邻域中各象素灰度的中间值。给定的图像f(x,y)中的每一个点(m,n ),取其领域s 。设s 含有M 个像素{a1,a2,⋯,aM},将其按大小排序,若M 是奇数时,则位于中间的那个象素值就是修改后图像g(x,y)在点f(m,n)处的像素值;若M 是偶数则取中间两个象素的平均值作为修改后图像g(x,y)在点(m,n )处的像素值。

在二维情况下。中值滤波的窗口形状和尺寸对滤波器效果影响很大。不同图像内容和不同应用要求往往选用不同的窗口和纯。通常的二维中指滤波窗口形状有线状、方形、圆形、十字形等。

3.4本章小结

本章的主要内容是介绍本课题中主要使用到的图像增强的方法:直方图均衡化、邻域平均、中值滤波,对着三种方法工作原理和算法进行了比较细致的介绍。

4 VC++6.0以及图像增强的实现

4.1 VC++6.0简介

4.1.1 VC++6.0 简介

Visual C++6.0由Microsoft 开发, 它不仅是一个C++编译器,而且是一个基于Windows 操作系统的可视化集成开发环境(integrated development environment ,IDE )。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard 、类向导Class Wizard 等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Microsoft 的主力软件产品。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft 公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000,Windows XP 和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。

Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。

4.1.2开发环境

Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office 插件。Visual Studio是目前最流行的Windows 平台应用程序开发环境。

开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET应用程序服务和 Microsoft 平台。

4.1.3 图片应用程序的创建

在进入VC++集成开发环境后,选择“文件|新建”菜单,探春“新建”对话框,单击“工程”标签,打开其选项卡,在其右边的列表框中选择MFC APP Wizard (exe )工程类型,在“工程名称”文本框中输入工程名Image ,在“位置”文本框输入工程路径。如图4.1所示

图4.1 新建工程对话框

点击确定后,系统显示“MFC 应用程序向导”对话框,选择“多文档”选项,单击完成后,就完成了程序大体框架的自动生成。如图4.2所示

图4.2MFC 向导及应用程序编辑界面

4.2图像增强实现方法

4.2.1灰度修正的实现

(1)新对话框的建立

在ResourceView 中右键选择Dialog ,单击InsertDialog ,即可插入一个新的对话框,如图4.3所示

图 4.3 插入新的对话框

然后对新的对话框的属性进行编辑,在对话框中加入新的控件,并对控件的属性进行编辑,即可达成图

4.4所示效果

图4.4新Dialog 的编辑

右键点击对话框,选择ClassWizard.. 建立该对话框的类,并进入MFC Class Wizard 对话框,点击自己所需要的方法,并选择COMMAND 选项,点击

Add Fuction即可添加所选方法,之后点击Edit Code按钮,就可进入代码编辑界面。

(2)菜单编辑

在ResourceView 中,选择Menu ,双击其下的IDR_IMAGETYPE,

进入菜单编辑界面,如图4.5所示

4.5 菜单编辑界面

选择右边菜单栏的空栏,并单击右键,点击Properties ,对弹出的对话框中输入一级菜单内容“灰度修正”,单击“灰度修正”菜单的子菜单空栏出再单击右键,选择Properties ,设置其子菜单属性。即可以达到图4.5所示效果。

图4.6 子菜单编辑

编辑界面处点击右键,选择ClassWizard 就可建立对应菜单的类,AdFunction 可以添加方法,点击Edit Code 则可以进入代码编辑界面。如图

4.7所示

图4.7 直方图编辑界面

最后可以实现二值化、直方图、直方图均衡化三个功能,其最后的成

果如图4.8、4.9、4.10所示

4.8 原图像及其灰度直方图

图 4.9 二值化 及其灰度直方图

图4.10直方图均衡化 及其直方图

(3)总结:从直方图统计可以看出,图像明暗分明,对比度很大,图像比较清晰明亮,很好的改善了原始图的视觉效果。

4.2.2邻域平均的实现

(1)在菜单中添加一个“图像增强”菜单,然后在“图像增强”菜单中添加一个“邻域平均”子菜单。如图4.11所示

图4.11 领域平均菜单

右键点击邻域平均菜单,选择建立向导类,即可进行代码编辑

(2)在Dialog 中插入一个新的Dialog ,并对新插入的对话框进行控件设置,达到如图4.12所示效果

图4.12 邻域平均对话框设置

(3)右键点击对话框与,选择建立向导类,即可新建一个邻域平均的类,并进入如图4.13所示界面,点击自己所需要的方法,并选择COMMAND 选项,点击Add Function即可添加所选方法,之后点击Edit Code按钮,就可进入代码编辑界面。

图4.13 邻域平均类编辑界面

代码编辑后,编译、调试无误后,运行程序,即可实现对图像的邻域平均预算,达到图4.14所示成果。

原图像 3*3模板

5*5模板 加权5*5模板

图4.1.4 邻域平均处理成果

(4)总结:邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。

4.2.3中值滤波的实现

(1)在菜单中添加一个“图像增强”菜单,然后在“图像增强”菜单中添加一个“邻域平均”子菜单。如图4.15所示

图4.15 中值滤波菜单

右键点击中值滤波菜单,选择建立向导类,即可进行代码编辑

(2)在Dialog 中插入一个新的Dialog

,并对新插入的对话框进行控件设

置,达到如图4.16所示效果。

图4.16 中值滤波模板设置

(3)右键点击对话框与,选择建立向导类,即可新建一个邻域平均的类,并进入如图4.17所示界面,点击自己所需要的方法,并选择COMMAND 选项,点击Add Function即可添加所选方法,之后点击Edit Code按钮,就可进入代码编辑界面。

图4.17 中值滤波类编辑界面

代码编辑后,编译、调试无误后,运行程序,即可实现对图像的邻域平均预算,达到图4.18所示成果。

原图像 3*3模板

5*5模板 7*7模板

图 4.18 中值滤波处理效果

(4)总结:中值滤波可以很好的过滤掉椒盐噪声,但是也会造成图片的模糊,且易造成图像的不连续性。

4.3本章小结

本章的核心内容就是图像增强方法的实现,介绍了本课题使用的软件VC++6.0,并对如何操作VC++6.0来实现直方图均衡化、邻域平均、中值滤波这三种方法的流程进行了十分详细的介绍。同时,还对这三种方法处理过后的图像进行了对比,以研究这三种方法的优缺点。

5总结与展望

5.1总结

主要讨论了图像增强中较为常见的三种方法:直方图均衡化、邻域平均和中值滤波,其中邻域平均与中值滤波都采用了数字图像处理中常用到的一种计算方式:模板操作。但是,并没有涉及到图像增强中的另外两种常见方法:锐化和伪色彩编码。

阐述了图像增强技术的历史及发展现状,学习、研究了直方图均衡化、邻域平均和中值滤波算法原理,介绍了VC++编程开发软件,简要的介绍了它的发展、开发环境等基本情况,并详细介绍了如何利用VC++实现对图像的增强。主要的研究内容与成果如下:

(1)VC++实现图像增强步骤:新MFC 工程的创建,实现直方图均衡化、邻域平均和中值滤波三种处理方法的详细的操作步骤。

(2)直方图均衡化、邻域平均和中值滤波三种方法的的原理与实现算法,同时对经过这三种方法处理过后的图片进行了对比,用以研究三种算法的优缺点。

5.2展望

图像增强处理的应用已经渗透到医学诊断、航空航天、军事侦察、指纹识别、无损探伤、卫星图片的处理等领域。

图像增强技术的快速发展同它的广泛应用是分不开的,发展的动力来自稳定涌现的新的应用。但是,图像增强也有它的缺点:如本文所研究的邻域平均算法会造成图像的模糊,中值滤波虽然对处理椒盐噪声有很好的作用,可它也会造成图像的不连续,所以必须对这些经典算法进行改进。我们可以预想,当改进型算法很好的解决上述缺点的时候, 我们可以预料,在未来社会中图像增强技术将会发挥更为重要的作用。

参考文献

[1] 王耀南. 计算机图像处理与识别技术[M]. 北京: 高等教育出版社, 2001.

[2] 吕风军. 数字图像处理编程入门[M]. 北京:清华大学出版社, 1999.

[3] 夏德深, 傅德胜. 计算机图像处理及应用[M]. 南京:东南大学出版社, 2004.

[4] 沈晶, 刘海波, 周长建, 等. Visual C++数字图像处理典型案例详解[M]. 北京:机

械工业出版社, 2012.

[5]张娜. 像增强技术的研究[D]. 计算机仿真, 2007, 24(1): 02-04.

[6]王慧琴. 数字图像处理[M]. 北京:北京邮电出版社, 2006.

[7]李朝晖, 张弘. 数字图像处理及应用[M]. 北京:机械工业出版社, 2004.

[8]孙蕾, 李丙春. 图像增强算法与评价方法研究[J]. 计算机工程,

2007,33(08): 21-23

[9]秋琦. 数字图像处理学[M]. 北京:电子工业出版社, 2001

[10]何东健. 数字图像处理[M]. 西安:西安电子科技大学出版社, 2003

[11]何斌等. Visual C++数字图像处理[M]. 北京:人民邮电出版社,2002.12

[12]陈玲,周书民. 数字图像处理方法及程序设计[M]. 哈尔滨:哈尔滨工程大学出版社,2011.12

[14]

致谢

时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。离校日期已日趋临近,毕业论文的完成也随之进入了尾声。从开始选课题到论文的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我诚挚的谢意!

在此我想对我的母校,我的父母、亲人们,我的老师和同学们表达我由衷的谢意。感谢我的家人对我大学四年学习的默默支持;感谢我的母校安徽建筑大学给了我在大学四年深造的机会,让我能继续学习和提高;能够给我做毕业设计这个平台去展示自己。感谢安徽建筑大学的老师和同学们四年来的关心和鼓励。老师们课堂上的激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真热情,生活上的热心主动,所有这些都让我的四年充满了感动。这次毕业论文设计我得到了很多老师和同学的帮助,其中我的论文导师宋杨老师对我的关心和支持尤为重要。每次遇到难题,我最先做的就是向宋老师寻求帮助,而宋老师每次不管忙或闲,总会抽空来帮我解决问题,找到一种最好的解决方法。宋老师平日里工作繁多,但我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。这几个月以来,感谢宋老师对我的帮助,在此谨向宋老师致以诚挚的谢意和崇高的敬意。

附录

部分程序代码

1. 读入图片

BOOL CImageDoc::OnOpenDocument(LPCTSTR lpszPathName) {

if (m_dib->Read(lpszPathName) == TRUE)

{

SetModifiedFlag(FALSE);

return TRUE;

}

else

return 0;

}

2. 绘制直方图

void HistogramDrawDlg::OnPaint()

{

CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

//彩色和灰度图像有效

if(m_nBitCountOut!= 8 && m_nBitCountOut!= 24) return ;

//获取直方图绘制静态框的矩形区域

CRect clientRect;

GetDlgItem(IDC_STATIC_Hist)->GetWindowRect(&clientRect); ScreenToClient(&clientRect);

BeginWaitCursor(); // Draw Back Ground

//画背景

dc.SelectStockObject(NULL_BRUSH);

dc.Rectangle(clientRect.left, clientRect.top-5,

clientRect.right, clientRect.bottom+1);

//画直方图灰度频率与直方图绘制矩形区域比例关系,画直方图 unsigned int max=0;;

for(int i=0;i

if(m_histArray[i]>max)

max=m_histArray[i];

}

DWORD bufTemp[256];

double x=clientRect.Height();

for(i=0;i

bufTemp[i]=(unsigned long)((float)m_histArray[i]*x/max);

}

for(i=clientRect.left;i

dc.MoveTo(i,clientRect.bottom);

dc.LineTo(i,clientRect.bottom-bufTemp[i-clientRect.left]);

}

CString str;

SetBkMode(dc,1); //字体背景设为透明

str.Format("0");

dc.TextOut(clientRect.left,clientRect.bottom+1,str);

str.Format("50");

dc.TextOut(clientRect.left+50,clientRect.bottom+1,str);

str.Format("100");

dc.TextOut(clientRect.left+100,clientRect.bottom+1,str);

str.Format("150");

dc.TextOut(clientRect.left+150,clientRect.bottom+1,str);

str.Format("200");

dc.TextOut(clientRect.left+200,clientRect.bottom+1,str);

str.Format("255");

dc.TextOut(clientRect.left+255,clientRect.bottom+1,str);

EndWaitCursor();

// Do not call CDialog::OnPaint() for painting messages

// Do not call CDialog::OnPaint() for painting messages

}

3. 灰度直方图

void HistogramDrawDlg::computeHistGray()

{

//只处理灰度图像

if(m_nBitCountOut!=8)

return;

//循环变量

int i,j;

//直方图数组清0

for(i=0;i

m_histArray[i]=0;

} //每行像素所占字节数 int lineByte=(m_himageDib.m_imgWidth*m_nBitCountOut/8+3)/4*4; //中间变量 int temp; //统计灰度直方图 for(i=0;i

4. 直方图均衡化

void CImageView::OnHistgramAver()

{

// TODO: Add your command handler code here

//获取文档类中m_dib的指针,访问当前DIB 数据

CImageDoc *pDoc=GetDocument();

ImageDib *pDib=pDoc->m_dib;

//只处理灰度图像

if(pDib->m_nBitCount!=8){

::MessageBox(0,"只处理灰度图像",MB_OK,0);

return ;

}

//将pDib 中的图像数据作为输入数据,调用带参数的构造函数,

HistogramDrawDlg histodrawdlg1;

histodrawdlg1.m_himageDib.ReplaceDib(pDib->GetDimensions(),pDib->m_nBitCount, pDib->m_lpColorTable, pDib->m_pImgData);

//直方图均衡

histodrawdlg1.histogramAve();

//新建视图窗口,显示变换结果

CMainFrame* pFrame = (CMainFrame *)(AfxGetApp()->m_pMainWnd);

pFrame->SendMessage(WM_COMMAND, ID_FILE_NEW);

CImageView* pView=(CImageView*)pFrame->MDIGetActive()->GetActiveView(); CImageDoc* pDocNew=pView->GetDocument();

ImageDib *dibNew=pDocNew->m_dib;

dibNew->ReplaceDib(histodrawdlg1.GetDimensions(),histodrawdlg1.m_nBitCountOut,histo

drawdlg1.m_lpColorTableOut, histodrawdlg1.m_pImgDataOut); pView->OnInitialUpdate();

pDocNew->SetModifiedFlag(TRUE);

pDocNew->UpdateAllViews(pView);

Invalidate();

}

安徽建筑大学毕业设计(论文)

毕 业 设 计 (论 文)

专 业 电子信息工程

班 级

学生姓名

学 号

课 题 数字图像处理方法研究与实现

——基于VC++的图像增强实现

指导教师

摘 要

图像在传送和转换时会造成图像的某些降质,所以有必要对降质的图像进行改善处理。其中的一种方法是不考虑图像质量降低的原因,只将图像中感兴趣的特征有选择的突出,从而衰减次要信息。这种方法能够提高图像的可读性,改善后的图像不一定逼近原始图像,但能够突出目标的轮廓、衰减各种噪声、将黑白图像转换成色彩图形等。这类方法通常称为图像增强技术。

图像增强技术通常有两种方法:空间域法和频率域法。空间域法主要是在空间域中对图像像素灰度值直接进行运算处理。本文围绕空间域法,对数字图像的增强处理进行了研究,着重介绍其中的直方图、直方图均衡化及图像平滑处理中的邻域平均和中值滤波。并利用VC++实现上述方法对图像的处理。

关键词:图像增强;直方图;图像平滑;邻域平均;中值滤波

Abstract

The image in the transmission and conversion cases will cause some blurred image, so,it is necessary for the image to have an improved treatment. One way is to not consider the reasons for degradation of image quality, the characteristics of the image selected outstanding, thereby attenuating less important information. This method can improve the readability of the image, the image after improvement is not necessarily approximate to the original image, such as highlighting the outline of the target, the attenuation of noise, the black and white images into color graphics. This kind of method is usually called the image enhancement technology.

Image enhancement technology usually has two kinds of methods: spatial domain and frequency domain method. The spatial domain method is direct computation of pixel gray values in the spatial domain. This paper focuses on the spatial domain method, enhancement of digital image processing are studied, emphatically introduces the histogram equalization and histogram of image smoothing, neighborhood averaging and median filtering. And VC++ is used to realize the method for image processing.

Keywords :Image Enhancement; Histogram; Image smooth; Neighborhood averaging; Median filtering

目 录

摘 要 ............................................................. II Abstract .......................................................... III

1 绪论 .............................................................. 1

1.1课题背景 . .......................................................................................................... 1

1.2 图像增强的研究及发展现状 . ....................................................................... 2

1.3 论文组织结构 . ............................................................................................... 3

2 图像增强的基本理论 ................................................ 4

2.1 数字图像的基本理论 . ................................................................................... 4

2.1.1数字图像的表示 . ........................................................................................... 4

2.1.2图像的灰度 . ................................................................................................... 4

2.1.3灰度直方图 . ................................................................................................... 4

2.2 数字图像增强概述 . ......................................................................................... 4

2.3 图像增强概述 . ................................................................................................. 6

2.3.1图像增强的定义 . ........................................................................................... 6

2.3.2常用的图像增强方法 . ................................................................................... 6

2.4 图像增强流程图 . ........................................................................................... 8

2.5本章小结 . .......................................................................................................... 8

3 图像增强方法与原理 ................................................ 9

3.1 直方图变换 . ..................................................................................................... 9

3.1.1直方图修正基础 . ........................................................................................... 9

3.1.2直方图均衡化 . ............................................................................................. 10

3.2 图像平滑 . ....................................................................................................... 11

3.2.1图像平滑 . ..................................................................................................... 11

3.2.2邻域平均 . ..................................................................................................... 11

3.2.3中值滤波 . ..................................................................................................... 12

3.4本章小结 . ........................................................................................................ 12

4 VC++6.0以及图像增强的实现 . ....................................... 13

4.1 VC++6.0简介 . ................................................................................................ 13

4.1.1 VC++6.0 简介 . ............................................................................................ 13

4.1.2开发环境 . ..................................................................................................... 13

4.1.3 图片应用程序的创建 . ................................................................................ 14

4.2图像增强实现方法 . ........................................................................................ 14

4.2.1灰度修正的实现 . ......................................................................................... 14

4.2.2邻域平均的实现 . ......................................................................................... 18

4.2.3中值滤波的实现 . ......................................................................................... 19

4.3本章小结 . ........................................................................................................ 21

5总结与展望 . ....................................................... 22

5.1总结 . ................................................................................................................ 22

5.2展望 . ................................................................................................................ 22

参考文献 ........................................................... 23

致谢 ............................................................... 24

附录 ............................................................... 25

部分程序代码 . ...................................................................................................... 25

1. 读入图片 . ........................................................................................................... 25

2. 绘制直方图 . ....................................................................................................... 25

3. 灰度直方图 . ....................................................................................................... 26

4. 直方图均衡化 . ................................................................................................... 27

安徽建筑大学毕业设计(论文)

数字图像处理方法研究与实现

——基于VC++的图像增强实现

电子与信息工程学院 电子信息工程 10电子1班 胡水清 [1**********]

指导老师 宋杨

1 绪论

数字图像处理是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。

1.1课题背景

数字图像处理技术是20世纪60年代随着计算机技术的发展而产生、发展和不断成熟起来的一个新兴技术领域,它在理论上和实际应用中都取得了巨大的成就。

视觉是人类最重要的感知手段,图像又是视觉的基础。早期图像处理的目的是改善图像质晕,它以人为对象,以改善人的视觉效果为目的。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得成功应用的是美国喷气推进实验室(JPL )。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片进行图像处理,如:几何校正、灰度变换、去除噪声,获得了巨大的成功。随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,获得月球的地形图、彩色图及全景镶嵌图,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。在以后的宇航空间技术探测研究中,数字图像处理技术都发挥巨大的作用。 数字图像处理技术取得的另一个巨大成就是在医学上。1972年英国EMI 公司工程师发明了用于头颅诊断的X 射线计算机断层摄影装置,也就是我们通常所说的CT (Computer Tomography )。1975年EMI 公司又成功研制出全身用的CT 装置,获得了人体各个部位鲜明清晰的断层图像。1979年,这项无损伤诊断技术被授予诺贝尔奖,以表彰它对人类做出的划时代贡献。

从20世纪70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理技术向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,类似人类视觉系统理解外部世界,这被称为图像理解或计算

机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少的重要的研究成果。

20世纪80年代末期,人们开始将其应用于地理信息系统,研究海图的自动读入、自动生成方法。数字图像处理技术的应用领域不断拓展。

数字图像处理技术的大发展是从20世纪90年代初开始的。随后数字图像处理技术迅猛发展,到目前为止,图像处理在图像通讯、办公自动化系统、地理信息系统、医疗设备、卫星照片传输及分析和工业自动化领域的应用越来越多。

进入21世纪,随着计算机技术的迅猛发展和相关理论的不断完善,数字图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就。属于这些领域的有航空航天、生物医学、机器人视觉、公安司法、军事制导、文化艺术等。该技术成为一门引人注目、前景远大的新学科。

1.2 图像增强的研究及发展现状

图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像,有效地去除图像中的噪声、增强图像中的边缘或其他感兴趣的区域,从而更加容易对图像中感兴趣的目标进行检测和测量。处理后的图像是否保持原状已经是无关紧要的了,不会因为考虑到图像的一些理想形式而去有意识的努力重现图像的真实度。图像增强的目的是增强图像的视觉效果,将原图像转换成一种更适合于人眼观察和计算机分析处理的形式。它一般要借助人眼的视觉特性,以取得看起来较好地视觉效果,很少涉及客观和统一的评价标准。增强的效果通常都与具体的图像有关系,靠人的主观感觉加以评价。

图像增强处理的应用已经渗透到医学诊断、航空航天、军事侦察、指纹识别、无损探伤、卫星图片的处理等领域。如对x 射线图片、CT 影像、内窥镜图像进行增强,使医生更容易从中确定病变区域,从图像细节区域中发现问题;对不同时间拍摄的同一地区的遥感图片进行增强处理,侦查是否有敌人军事调动或军事装备及建筑出现;在煤矿工业电视系统中采用增强处理来提高工业电视图像的清晰度,克服因光线不足、灰尘等原因带来的图像模糊、偏差等现象,减少电视系统维护的工作量。图像增强技术的快速发展同它的广泛应用是分不开的,发展的动力来自稳定涌现的新的应用,我们可以预料,在未来社会中图像增强技术将会发挥更为重要的作用。

在图像处理过程中,图像增强是十分重要的一个环节。本文的主要内容就是围绕图像增强部分的一些基本理论,并利用VC++实现图像的增强处理而展开的。

1.3 论文组织结构

数字图像处理方法研究与实现。本文主要是对数字图像处理方法中的图像增强的方法进行了研究,并利用VC++实现处理方法,其组织结构如下: 第一章:简要介绍了论文的选题背景及其发展现状,对图像增强进行了简要的介绍,最后对论文的研究内容和组织结构进行了说明。 第二章:数字图像增强概述,这一部分将会介绍图像增强的定义及基本理论。 第三章:图像增强的方法的介绍,着重介绍了其中的直方图均衡化、邻域平均和中值滤波三种方法。

第四章:在本节介绍了此次研究所使用的软件VC++ 6.0,并详细描述基于该软件的图像增强的实现的操作流程,并对直方图均衡化、邻域平均、中值滤波三种方法处理过后的图像进行对比。 第五章:总结与展望,总结自己针对本课题所做的工作,并对课题的未来发展进行了展望。

2 图像增强的基本理论

2.1 数字图像的基本理论

2.1.1数字图像的表示

图像并不能直接用计算机来处理,处理前必须先转化成数字图像。早期一般用picture 代表图像,随着数字技术的发展,现在都用image 代表离散化了的数字图像。

由于从外界得到的图像多是二维(2-D )的,一幅图像可以用一个2-D 数组f (x , y ) 表示。这里x 和y 表示二维空间X 、Y 中一个坐标点的位置,而f 则代表图像在点(x , y ) 的某种性质数值。为了能够用计算机对图像进行处理,需要坐标空间和性质空间都离散化。这种离散化了的图像都是数字图像,即f (x , y ) 都在整数集合中取值。图像中的每个基本单元称为图像的元素,简称像素。

2.1.2图像的灰度

常用的图像一般是灰度图,这时f 表示灰度值,反映了图像上对应点的亮度。亮度是观察者对所看到的物体表面反射光强的量度。作为图像灰度的量度函数f (x , y ) 应大于零。人们日常看到的图像一般是从目标上反射出来的光组成的,所以f (x , y ) 可看成由两部分构成:入射到可见场景上光的量;场景中目标对反射光反射的比率。确切地说它们分别称为照度成分i (x , y ) 和反射成分r (x , y ) 。f (x , y ) 与i (x , y ) 和r (x , y ) 都成正比,可表示成f (x , y ) =i (x , y ) ×r (x , y ) 。

将二维坐标位置函数f (x , y ) 称为灰度。入射光照射到物体表面的能量是有限的,并且它永远为正,即0

2.1.3灰度直方图

灰度直方图是数字图像处理中一个最简单、最有用的工具,它反映了数字图像中每一灰度级与其出现频率之间的统计关系。可以有针对性地通过改变直方图的灰度分布状况,使灰度均匀地或按预期目标分布于整个灰度范围空间,从而达到图像增强的效果。

2.2 数字图像增强概述

随着数字技术的不断发展和应用,现实生活中的许多信息都可以用数字形式

的数据进行处理和存储,数字图像就是这种以数字形式进行存储和处理的图像。利用计算机可以对它进行常现图像处理技术所不能实现的加工处理,还可以将它在网上传输,可以多次拷贝而不失真。数字图像处理亦称为计算机图像处理,指将图像信号转换成数字格式并利用计算机对其进行处理的过程。

数字图像处理系统主要由图像采集系统、数字计算机及输出设备组成。 如图2.1所示。

图2.1 图像处理系统组成图

图2.1仅仅是图像处理的硬件设备构成,图中并没有显示出软件系统,在图像处理系统中软件系统同样是非常重要的。在图像获取的过程中,由于设备的不完善及光照等条件的影响,不可避免地会产生图像降质现象。影响图像质量的几个主要因素是:

(1)随机噪声,主要是高斯噪声和椒盐噪声,可以是由于相机或数字化设备产生,也可以是在图像传输过程中造成的;

(2)系统噪声,由系统产生,具有可预测性质;

(3)畸变,主要是由于相机与物体相对位置、光学透镜曲率等原因造成的,可以看作是真实图像的几何变换。

数字图像处理流程如图2.2所示,从一幅或是一批图像的最简单的处理,如特征增强、去噪、平滑等基本的图像处理技术,到图像的特征分析和提取,进而产生对图像的正确理解或者遥感图像的解译,最后的步骤可以是通过专家的视觉解译,也可以是在图像处理系统中通过一些知识库而产生的对图像的理解。

图2.2 图像处理流程图

2.3 图像增强概述

2.3.1图像增强的定义

图像增强是指按特定的需要突出一幅图像中的某些信息,同时削弱或去除某些不需要的信息的处理方法,也是提高图像质量的过程。图像增强的目的是使图像的某些特性方面更加鲜明、突出,使处理后的图像更适合人眼视觉特性或机器分析,以便于实现对图像的更高级的处理和分析。图像增强的过程往往也是一个矛盾的过程:图像增强希望既能去除噪声又增强边缘。但是,增强边缘的同时会同时增强噪声,而滤去噪声又会使边缘在一定程度上模糊,因此,在图像增强的时候,往往是将这两部分进行折中,找到一个好的代价函数达到需要的增强目的。传统的图像增强算法在确定转换函数时常是基于整个图像的统计量,如:ST 转换,直方图均衡,中值滤波,微分锐化,高通滤波等等。这样对应于某些局部区域的细节在计算整幅图的变换时其影响因为其值较小而常常被忽略掉,从而局部区域的增强效果常常不够理想,噪声滤波和边缘增强这两者的矛盾较难得到解决。

2.3.2常用的图像增强方法

图像增强可分成两大类:频率域法和空间域法。前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。具有代表性的空间域算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。

图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖) 图像中某些不需要的特征,使图像与视觉响应特性相匹配。在图像增强过程中,不分析图像降质的原因,处理后的图像不一定逼近原始图像。图像增强技术根据增强处理过程所在的空间不同,可分为基于空间域的算法和基于频率域的算法两大类。基于空间域的算法处理时直接对图像灰度级做运算;基于频率域的算法是在图像的某种变换域内对图像的变换系数值进行某种修正,是一种间接增强的算法。

基于空间域的算法分为点运算算法和邻域去噪算法。点运算算法即灰度级校正、灰度变换和直方图修正等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。邻域增强算法分为图像平滑和锐化两种。平滑一般用于消除图像噪

声,但是也容易引起边缘的模糊。常用算法有均值滤波、中值滤波。锐化的目的在于突出物体的边缘轮廓,便于目标识别。常用算法有梯度法、算子、高通滤波、掩模匹配法、统计差值法等。

(1)直方图均衡化

有些图像在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。这时可以通过直方图均衡化将图像的灰度范围分开,并且让灰度频率较小的灰度级变大,通过调整图像灰度值的动态范围,自动地增加整个图像的对比度,使图像具有较大的反差,细节清晰。

(2)对比度增强法

有些图像的对比度比较低,从而使整个图像模糊不清。这时可以按一定的规则修改原来图像的每一个像素的灰度,从而改变图像灰度的动态范围。

(3)平滑噪声

有些图像是通过扫描仪扫描输入或传输通道传输过来的。图像中往往包含有各种各样的噪声。这些噪声一般是随机产生的,因此具有分布和大小不规则性的特点。这些噪声的存在直接影响着后续的处理过程,使图像失真。图像平滑就是针对图像噪声的操作,其主要作用是为了消除噪声,图像平滑的常用方法是采用均值滤波或中值滤波,均值滤波是一种线性空间滤波,它用一个有奇数点的掩模在图像上滑动,将掩模中心对应像素点的灰度值用掩模内所有像素点灰度的平均值代替,如果规定了在取均值过程中掩模内各像素点所占的权重,即各像素点所乘系数,这时就称为加权均值滤波;中值滤波是一种非线性空间滤波,其与均值滤波的区别是掩模中心对应像素点的灰度值用掩模内所有像素点灰度值的中间值代替。

2.4 图像增强流程图

图2-3 图像增强流程图

2.5本章小结

本章主要是介绍关于图像增强的基本理论,对图像增强的中的一些概念就行了阐述,介绍了一些常用的图像增强的方法,同时,对图像增强的流程做了大体上的介绍。

3 图像增强方法与原理

3.1 直方图变换

3.1.1直方图修正基础

图像的灰度直方图是反映一幅图像的灰度级与出现这种灰度级的概率之间的关系的图形。

灰度级为[0,L-1]范围的数字图像的直方图是离散函数h(r k )=n k ,这里r k 是第k 级灰度,n k 是图像中灰度级为r k 的像素个数。通常以图像中像素数目的总和n 去除他的每一个值,以得到归一化的直方图,公示如下:

P (r k ) =n k /n k=0,1,2,„,L-1

P (r ) =1∑且 k

K =1L -1

因此P (r k ) 给出了灰度级为r k 发生的概率估计值。归纳起来,直方图主要有一下几点性质:

(1)直方图中不包含位置信息。直方图只是反应了图像灰度分布的特性,和灰度所在的位置没有关系,不同的图像可能具有相近或者完全相同的直方图分布。

(2)直方图反应了图像的整体灰度。直方图反应了图像的整体灰度分布情况,对于暗色图像,直方图的组成集中在灰度级低(暗)的一侧,相反,明亮图像的直方图则倾向于灰度级高的一侧。直观上讲,可以得出这样的结论,若一幅图像其像素占有全部可能的灰度级并且分布均匀,这样的图像有高对比度和多变的灰度色调。

(3)直方图的可叠加性。一幅图像的直方图等于它各个部分直方图的和。

(4)直方图具有统计特性。从直方图的定义可知,连续图像的直方图是一位连续函数,它具有统计特征,例如矩、绝对矩、中心矩、绝对中心矩、熵。

(5)直方图的动态范围。直方图的动态范围是由计算机图像处理系统的模数转换器的灰度级决定。由于图像的视觉效果不好或者特殊需要,常常要对图像的灰度进行修正,以达到理想的效果,即对原始图像的直方图进行转换(修正):

一幅给定的图像的灰度级分布在0≤r ≤1范围内。可以对[0,1]区间内的任何一个r 进行如下的变换:

s=T(r)

变换函数T 应满足以下条件:

a. 在0≤r ≤1区间内,T (r ) 单值单调增加;

b. 对于0≤r ≤1,有0≤T (r ) ≤1。

这里的第一个条件保证了图像的灰度级从白到黑的次序不变。第二个条件则保证了映射变换后的像素灰度值在允许的范围内。满足这两个条件,就保证了转换函数的可逆。

3.1.2直方图均衡化

直方图均衡化方法是图像增强中最常用、最重要的方法之一。直方图均衡化是把原图像的直方图通过灰度变换函数修正为灰度均匀分布的直方图,然后按均衡直方图修正原图像。它以概率论为基础,运用灰度点运算来实现,从而达到增强的目的。它的变换函数取决于图像灰度直方图的累积分布函数。概括的说,就是把一已知灰度概率分布的图像,经过一种变换,使之演变成一幅具有均匀概率分布的新图像。有些图像在低值灰度区间上频率较大,使得图像中较暗区域中的细节看不清楚。这时可以将图像的灰度范围分开,并且让灰度频率较小的灰度级变大。当图像的直方图为一均匀分布时,图像的信息熵最大,此时图像包含的信息量最大,图像看起来就显得清晰。

直方图均衡化变换函数如图3.2所示,设r ,s 分别表示原图像和增强后图像的灰度。为了简单,假定所有像素的灰度已被归一化。当r=s=0时,表示黑色;当r=s=1时,表示白色;当r ,s 在[0,1]之间时,表示像素灰度在黑白之间变化。灰度变换函数为:s=T(r)。

S

图3.2 直方图均衡化变换函数

实际上,由于直方图是近似的概率密度函数,用离散灰度级作变换时很少能够得到完全平坦的结果,而且,变换后往往会出现灰度级减少的现象,这种现象被称为“简并”现象。这是像素灰度有限的必然结果。由于上述原因,数字图像的直方图均衡只能是近似的。直方图均衡化处理可大大改善图像灰度的动态范围。减少简并现象通常可采用两种方法:一种简单的方法是增加像素的比特数。

比如,通常用8比特来代表一个像素,而现在用12比特来表示一个像素,这样就可以减少简并现象发生的机会,从而减少灰度层次的损失。另外,采用灰度间隔放大理论的直方图修正方法也可以减少简并现象。这种灰度间隔放大可以按照眼睛的对比度灵敏特性和成像系统的动态范围进行放大。一般实现方法采用如下几步:

(1)统计原始图像的直方图;

(2)根据给定的成像系统的最大动态范围和原始图像的灰度级来确定处理后的灰度级间隔;

(3)根据求得的步长来求变换后的新灰度;

(4)用处理后的新灰度代替处理前的灰度。

3.2 图像平滑

3.2.1图像平滑

获得的图像可能会因为各种原因而被污染,产生噪声。常见的图像噪声主要有加性噪声、乘性噪声和量化噪声等。噪声并不仅限于人眼所见的失真,有些噪声只针对某些具体的图像处理过程产生影响。图像中的噪声往往和正常信号交织在一起,尤其是乘性噪声,如果处理不当,就会破坏图像本身的细节,如会使线条、边界等变得模糊不清。有些图像是通过扫描仪扫描输入或传输通道传输过来的。图像中往往包含有各种各样的噪声。这些噪声一般是随机产生的,因此具有分布和大小不规则性的特点。图像平滑就是针对图像噪声的操作,其主要作用是为了消除噪声。如何既平滑掉噪声又尽量保持图像细节,是图像平滑的主要研究任务。这些噪声的存在直接影响着后续的处理过程,使图像失真。这时可以采用线性滤波和中值滤波的方法。

3.2.2邻域平均

领域平均法是对于给定的图像f(x,y) 中的每一个点(m ,n ),取其领域s 。设s 含有M 个像素,取其平均值作为处理后所得图像像素点(m ,n )处的灰度。

设S 是3*3的正方形邻域,点(m ,n )位于S 中心,则:

11

f (m , n ) =∑9x =-1y =-1∑f (m +x , y +n ) 1

也就是说某个像素点的结果不仅和本像素灰度有关,而且和其邻域点的只有关。

3.2.3中值滤波

中值滤波就是输出图像的某点象素等于该象素邻域中各象素灰度的中间值。给定的图像f(x,y)中的每一个点(m,n ),取其领域s 。设s 含有M 个像素{a1,a2,⋯,aM},将其按大小排序,若M 是奇数时,则位于中间的那个象素值就是修改后图像g(x,y)在点f(m,n)处的像素值;若M 是偶数则取中间两个象素的平均值作为修改后图像g(x,y)在点(m,n )处的像素值。

在二维情况下。中值滤波的窗口形状和尺寸对滤波器效果影响很大。不同图像内容和不同应用要求往往选用不同的窗口和纯。通常的二维中指滤波窗口形状有线状、方形、圆形、十字形等。

3.4本章小结

本章的主要内容是介绍本课题中主要使用到的图像增强的方法:直方图均衡化、邻域平均、中值滤波,对着三种方法工作原理和算法进行了比较细致的介绍。

4 VC++6.0以及图像增强的实现

4.1 VC++6.0简介

4.1.1 VC++6.0 简介

Visual C++6.0由Microsoft 开发, 它不仅是一个C++编译器,而且是一个基于Windows 操作系统的可视化集成开发环境(integrated development environment ,IDE )。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard 、类向导Class Wizard 等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Microsoft 的主力软件产品。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft 公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000,Windows XP 和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。

Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。

4.1.2开发环境

Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office 插件。Visual Studio是目前最流行的Windows 平台应用程序开发环境。

开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET应用程序服务和 Microsoft 平台。

4.1.3 图片应用程序的创建

在进入VC++集成开发环境后,选择“文件|新建”菜单,探春“新建”对话框,单击“工程”标签,打开其选项卡,在其右边的列表框中选择MFC APP Wizard (exe )工程类型,在“工程名称”文本框中输入工程名Image ,在“位置”文本框输入工程路径。如图4.1所示

图4.1 新建工程对话框

点击确定后,系统显示“MFC 应用程序向导”对话框,选择“多文档”选项,单击完成后,就完成了程序大体框架的自动生成。如图4.2所示

图4.2MFC 向导及应用程序编辑界面

4.2图像增强实现方法

4.2.1灰度修正的实现

(1)新对话框的建立

在ResourceView 中右键选择Dialog ,单击InsertDialog ,即可插入一个新的对话框,如图4.3所示

图 4.3 插入新的对话框

然后对新的对话框的属性进行编辑,在对话框中加入新的控件,并对控件的属性进行编辑,即可达成图

4.4所示效果

图4.4新Dialog 的编辑

右键点击对话框,选择ClassWizard.. 建立该对话框的类,并进入MFC Class Wizard 对话框,点击自己所需要的方法,并选择COMMAND 选项,点击

Add Fuction即可添加所选方法,之后点击Edit Code按钮,就可进入代码编辑界面。

(2)菜单编辑

在ResourceView 中,选择Menu ,双击其下的IDR_IMAGETYPE,

进入菜单编辑界面,如图4.5所示

4.5 菜单编辑界面

选择右边菜单栏的空栏,并单击右键,点击Properties ,对弹出的对话框中输入一级菜单内容“灰度修正”,单击“灰度修正”菜单的子菜单空栏出再单击右键,选择Properties ,设置其子菜单属性。即可以达到图4.5所示效果。

图4.6 子菜单编辑

编辑界面处点击右键,选择ClassWizard 就可建立对应菜单的类,AdFunction 可以添加方法,点击Edit Code 则可以进入代码编辑界面。如图

4.7所示

图4.7 直方图编辑界面

最后可以实现二值化、直方图、直方图均衡化三个功能,其最后的成

果如图4.8、4.9、4.10所示

4.8 原图像及其灰度直方图

图 4.9 二值化 及其灰度直方图

图4.10直方图均衡化 及其直方图

(3)总结:从直方图统计可以看出,图像明暗分明,对比度很大,图像比较清晰明亮,很好的改善了原始图的视觉效果。

4.2.2邻域平均的实现

(1)在菜单中添加一个“图像增强”菜单,然后在“图像增强”菜单中添加一个“邻域平均”子菜单。如图4.11所示

图4.11 领域平均菜单

右键点击邻域平均菜单,选择建立向导类,即可进行代码编辑

(2)在Dialog 中插入一个新的Dialog ,并对新插入的对话框进行控件设置,达到如图4.12所示效果

图4.12 邻域平均对话框设置

(3)右键点击对话框与,选择建立向导类,即可新建一个邻域平均的类,并进入如图4.13所示界面,点击自己所需要的方法,并选择COMMAND 选项,点击Add Function即可添加所选方法,之后点击Edit Code按钮,就可进入代码编辑界面。

图4.13 邻域平均类编辑界面

代码编辑后,编译、调试无误后,运行程序,即可实现对图像的邻域平均预算,达到图4.14所示成果。

原图像 3*3模板

5*5模板 加权5*5模板

图4.1.4 邻域平均处理成果

(4)总结:邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。

4.2.3中值滤波的实现

(1)在菜单中添加一个“图像增强”菜单,然后在“图像增强”菜单中添加一个“邻域平均”子菜单。如图4.15所示

图4.15 中值滤波菜单

右键点击中值滤波菜单,选择建立向导类,即可进行代码编辑

(2)在Dialog 中插入一个新的Dialog

,并对新插入的对话框进行控件设

置,达到如图4.16所示效果。

图4.16 中值滤波模板设置

(3)右键点击对话框与,选择建立向导类,即可新建一个邻域平均的类,并进入如图4.17所示界面,点击自己所需要的方法,并选择COMMAND 选项,点击Add Function即可添加所选方法,之后点击Edit Code按钮,就可进入代码编辑界面。

图4.17 中值滤波类编辑界面

代码编辑后,编译、调试无误后,运行程序,即可实现对图像的邻域平均预算,达到图4.18所示成果。

原图像 3*3模板

5*5模板 7*7模板

图 4.18 中值滤波处理效果

(4)总结:中值滤波可以很好的过滤掉椒盐噪声,但是也会造成图片的模糊,且易造成图像的不连续性。

4.3本章小结

本章的核心内容就是图像增强方法的实现,介绍了本课题使用的软件VC++6.0,并对如何操作VC++6.0来实现直方图均衡化、邻域平均、中值滤波这三种方法的流程进行了十分详细的介绍。同时,还对这三种方法处理过后的图像进行了对比,以研究这三种方法的优缺点。

5总结与展望

5.1总结

主要讨论了图像增强中较为常见的三种方法:直方图均衡化、邻域平均和中值滤波,其中邻域平均与中值滤波都采用了数字图像处理中常用到的一种计算方式:模板操作。但是,并没有涉及到图像增强中的另外两种常见方法:锐化和伪色彩编码。

阐述了图像增强技术的历史及发展现状,学习、研究了直方图均衡化、邻域平均和中值滤波算法原理,介绍了VC++编程开发软件,简要的介绍了它的发展、开发环境等基本情况,并详细介绍了如何利用VC++实现对图像的增强。主要的研究内容与成果如下:

(1)VC++实现图像增强步骤:新MFC 工程的创建,实现直方图均衡化、邻域平均和中值滤波三种处理方法的详细的操作步骤。

(2)直方图均衡化、邻域平均和中值滤波三种方法的的原理与实现算法,同时对经过这三种方法处理过后的图片进行了对比,用以研究三种算法的优缺点。

5.2展望

图像增强处理的应用已经渗透到医学诊断、航空航天、军事侦察、指纹识别、无损探伤、卫星图片的处理等领域。

图像增强技术的快速发展同它的广泛应用是分不开的,发展的动力来自稳定涌现的新的应用。但是,图像增强也有它的缺点:如本文所研究的邻域平均算法会造成图像的模糊,中值滤波虽然对处理椒盐噪声有很好的作用,可它也会造成图像的不连续,所以必须对这些经典算法进行改进。我们可以预想,当改进型算法很好的解决上述缺点的时候, 我们可以预料,在未来社会中图像增强技术将会发挥更为重要的作用。

参考文献

[1] 王耀南. 计算机图像处理与识别技术[M]. 北京: 高等教育出版社, 2001.

[2] 吕风军. 数字图像处理编程入门[M]. 北京:清华大学出版社, 1999.

[3] 夏德深, 傅德胜. 计算机图像处理及应用[M]. 南京:东南大学出版社, 2004.

[4] 沈晶, 刘海波, 周长建, 等. Visual C++数字图像处理典型案例详解[M]. 北京:机

械工业出版社, 2012.

[5]张娜. 像增强技术的研究[D]. 计算机仿真, 2007, 24(1): 02-04.

[6]王慧琴. 数字图像处理[M]. 北京:北京邮电出版社, 2006.

[7]李朝晖, 张弘. 数字图像处理及应用[M]. 北京:机械工业出版社, 2004.

[8]孙蕾, 李丙春. 图像增强算法与评价方法研究[J]. 计算机工程,

2007,33(08): 21-23

[9]秋琦. 数字图像处理学[M]. 北京:电子工业出版社, 2001

[10]何东健. 数字图像处理[M]. 西安:西安电子科技大学出版社, 2003

[11]何斌等. Visual C++数字图像处理[M]. 北京:人民邮电出版社,2002.12

[12]陈玲,周书民. 数字图像处理方法及程序设计[M]. 哈尔滨:哈尔滨工程大学出版社,2011.12

[14]

致谢

时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。离校日期已日趋临近,毕业论文的完成也随之进入了尾声。从开始选课题到论文的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我诚挚的谢意!

在此我想对我的母校,我的父母、亲人们,我的老师和同学们表达我由衷的谢意。感谢我的家人对我大学四年学习的默默支持;感谢我的母校安徽建筑大学给了我在大学四年深造的机会,让我能继续学习和提高;能够给我做毕业设计这个平台去展示自己。感谢安徽建筑大学的老师和同学们四年来的关心和鼓励。老师们课堂上的激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真热情,生活上的热心主动,所有这些都让我的四年充满了感动。这次毕业论文设计我得到了很多老师和同学的帮助,其中我的论文导师宋杨老师对我的关心和支持尤为重要。每次遇到难题,我最先做的就是向宋老师寻求帮助,而宋老师每次不管忙或闲,总会抽空来帮我解决问题,找到一种最好的解决方法。宋老师平日里工作繁多,但我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。这几个月以来,感谢宋老师对我的帮助,在此谨向宋老师致以诚挚的谢意和崇高的敬意。

附录

部分程序代码

1. 读入图片

BOOL CImageDoc::OnOpenDocument(LPCTSTR lpszPathName) {

if (m_dib->Read(lpszPathName) == TRUE)

{

SetModifiedFlag(FALSE);

return TRUE;

}

else

return 0;

}

2. 绘制直方图

void HistogramDrawDlg::OnPaint()

{

CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

//彩色和灰度图像有效

if(m_nBitCountOut!= 8 && m_nBitCountOut!= 24) return ;

//获取直方图绘制静态框的矩形区域

CRect clientRect;

GetDlgItem(IDC_STATIC_Hist)->GetWindowRect(&clientRect); ScreenToClient(&clientRect);

BeginWaitCursor(); // Draw Back Ground

//画背景

dc.SelectStockObject(NULL_BRUSH);

dc.Rectangle(clientRect.left, clientRect.top-5,

clientRect.right, clientRect.bottom+1);

//画直方图灰度频率与直方图绘制矩形区域比例关系,画直方图 unsigned int max=0;;

for(int i=0;i

if(m_histArray[i]>max)

max=m_histArray[i];

}

DWORD bufTemp[256];

double x=clientRect.Height();

for(i=0;i

bufTemp[i]=(unsigned long)((float)m_histArray[i]*x/max);

}

for(i=clientRect.left;i

dc.MoveTo(i,clientRect.bottom);

dc.LineTo(i,clientRect.bottom-bufTemp[i-clientRect.left]);

}

CString str;

SetBkMode(dc,1); //字体背景设为透明

str.Format("0");

dc.TextOut(clientRect.left,clientRect.bottom+1,str);

str.Format("50");

dc.TextOut(clientRect.left+50,clientRect.bottom+1,str);

str.Format("100");

dc.TextOut(clientRect.left+100,clientRect.bottom+1,str);

str.Format("150");

dc.TextOut(clientRect.left+150,clientRect.bottom+1,str);

str.Format("200");

dc.TextOut(clientRect.left+200,clientRect.bottom+1,str);

str.Format("255");

dc.TextOut(clientRect.left+255,clientRect.bottom+1,str);

EndWaitCursor();

// Do not call CDialog::OnPaint() for painting messages

// Do not call CDialog::OnPaint() for painting messages

}

3. 灰度直方图

void HistogramDrawDlg::computeHistGray()

{

//只处理灰度图像

if(m_nBitCountOut!=8)

return;

//循环变量

int i,j;

//直方图数组清0

for(i=0;i

m_histArray[i]=0;

} //每行像素所占字节数 int lineByte=(m_himageDib.m_imgWidth*m_nBitCountOut/8+3)/4*4; //中间变量 int temp; //统计灰度直方图 for(i=0;i

4. 直方图均衡化

void CImageView::OnHistgramAver()

{

// TODO: Add your command handler code here

//获取文档类中m_dib的指针,访问当前DIB 数据

CImageDoc *pDoc=GetDocument();

ImageDib *pDib=pDoc->m_dib;

//只处理灰度图像

if(pDib->m_nBitCount!=8){

::MessageBox(0,"只处理灰度图像",MB_OK,0);

return ;

}

//将pDib 中的图像数据作为输入数据,调用带参数的构造函数,

HistogramDrawDlg histodrawdlg1;

histodrawdlg1.m_himageDib.ReplaceDib(pDib->GetDimensions(),pDib->m_nBitCount, pDib->m_lpColorTable, pDib->m_pImgData);

//直方图均衡

histodrawdlg1.histogramAve();

//新建视图窗口,显示变换结果

CMainFrame* pFrame = (CMainFrame *)(AfxGetApp()->m_pMainWnd);

pFrame->SendMessage(WM_COMMAND, ID_FILE_NEW);

CImageView* pView=(CImageView*)pFrame->MDIGetActive()->GetActiveView(); CImageDoc* pDocNew=pView->GetDocument();

ImageDib *dibNew=pDocNew->m_dib;

dibNew->ReplaceDib(histodrawdlg1.GetDimensions(),histodrawdlg1.m_nBitCountOut,histo

drawdlg1.m_lpColorTableOut, histodrawdlg1.m_pImgDataOut); pView->OnInitialUpdate();

pDocNew->SetModifiedFlag(TRUE);

pDocNew->UpdateAllViews(pView);

Invalidate();

}


相关内容

  • 沈理[数字图像处理]课程设计题目
  • 数字图像处理课程设计选题 1. 数字图像的阈值分割方法研究 2. 数字图像锐化算子的对比研究 3. 数字图像的开运算 4. 数字图像的闭运算 5. 数字图像连通区域单元贴标签 6. 彩色数字图像的灰度化处理 7. 数字图像类型的转换 8. 数字图像FIR 滤波器的设计 9. 数字图像的算术运算 10 ...

  • 数字信号滤波器
  • 对数字滤波器的初步认识 数字滤波器(digital filter)是由数字乘法器.加法器和延时单元组成的一种装置.其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的.由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现.数字滤 ...

  • FIR数字滤波器设计
  • 长 治 学 院 2012届学士学位毕业论文 FIR 数字滤波器设计 学 号: 08405416 姓 名: 刘萍 指导教师: 张秀秀 专 业: 电子信息科学与技术 系 别: 电子信息与物理系 完成时间:2012年5月 FIR 数字滤波器的设计 专业:电子信息科学与技术 姓名:刘萍 学号:0848541 ...

  • 基于Matlab和脉冲响应不变法的滤波器设计
  • 目 录 摘 要 ............................................................................................................. 错误!未定义书签. Abstract ............. ...

  • 数字滤波器研究综述 ---文献综述
  • 附件1:文献综述 专业班级:电子073班 姓名:姜美玲 学号:07012887 数字滤波器研究综述 摘要:文章对数字滤波器做了较为全面的介绍.概括了滤波器的背景知识.应用以及较为详细的分类情况.比较了几种有代表性的经典的数字滤波器.然后对数字滤波器以及发展的走势进行了展望. 关键词:数字滤波器:II ...

  • [数字信号处理]课程心得
  • <数字信号处理>课程心得之 DSP 技术在计算机领域的应用 姓名:XX 班级:电气XXXX 班 短暂的一学期很快就过去了,在这个学期里,通过对<数字信号处理>课程的学习, 我了解到了DSP 的基本概念和基本内容.我平时对计算机硬件方面的知识比较感兴趣,通过对本课程的学习,我发 ...

  • 数字图像处理课程设计 基于Matlab的数字图像处理
  • 数字图像处理课程设计 基于Matlab 的数字图像处理 --图像识别 院系 信息技术学院 专业班级 软件2班 学号 XXXXXXXXXX 姓名 XXXX 指导教师 XXXXXX 课程设计时间 2014年12月 目录 摘要 . ..................................... ...

  • 现代信号处理及其应用
  • [数字信号处理在视频领域的应用] [] [111044A ] [111044124] [2014.4.15] 摘要: 本文主要介绍了数字信号处理在视频领域的应用,包括相关背景.发展历程及其未来发展趋势.包含数字信号处理视频的标准及应用,重点突出数字信号处理在视频处理中的具体技术及其的实现. 目录 数 ...

  • 视觉传达专业[数字媒体设计]本科 课程教学大纲
  • <数字媒体设计>课程教学大纲 一.基本信息 1.课程名称 数字媒体设计/ Digital Media Design 2.课程代码 163Y096 3.课程类别 专业课 4.课程性质 专业选修 5.学时/学分 64(4+20+40)/4 6.先修课程 包装设计.书籍装帧设计.平面广告设计. ...

  • 数字航空摄影测量的后期数字化处理
  • (1)数字正射影像图(DOM,Digital Orthophoto Map) ,是利用数字高程模型对扫描数字化的(或直接以数字方式获取)航空相片(或航天影像),经数字微分纠正.数字镶嵌,按一定图幅范围裁剪生成的数字正射影像集. 特点:具有精度高.信息丰富.直观逼真.获取快捷. 数字正射影像图产品按颜 ...