1 绪论
本章简略介绍课题的研究目的及意义,该课题国内外研究现状以及论文内容安排等。
1.1 课题研究目的及意义
数字图像处理(Digital Image Processing),就是利用数字计算机或者其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。
MathWorks公司推出的MATLAB软件是学习数理知识的好帮手。应用MATLAB友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程和科研中的问题。
图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。随着人类活动范围的不断扩大,图像处理的应用领域也将随之不断扩大,已在国家安全、经济发展、日常生活中充当越来越重要的角色,对国计民生的作用不可低估。
1.2 国内外研究现状
数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。
早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得实际成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。
随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,以致获得了月球的地形图、彩色图及全景镶嵌图,获得了非凡的成果,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。
2 数字图像处理的简介
2.1 什么是数字图像
所谓数字图像就是把传统图像的画面分割成如图2-1所示的被成为像素(picture element, 简称pixel。有时候也用pel这一简写词)的小的离散点,各像素的灰度值也是用离散值即整数值来表示的。数字图像(digital imagine)和传统的图像即模拟图像(picture)是有差别的。
图2-1 数字图像
为了从一般的照片,景物等模拟图像中得到数字图像,需要对传统的模拟图像进行采样与量化两种操作(二者统称为数字化)。
1.采样
采样(sampling)就是把在时间上和空间上连续的图像变成离散点(采样点,即像素)的集合的一种操作。
图像基本上是在二维平面上连续分布的信息形式要把它输入到计算机中,首先要把二维信号变成一维信号,因此要进行扫描(scanning)。最常用的扫描方法是在二维平面上按一定间隔顺序地从上方顺序地沿水平方向的直线(扫描线)扫描,从而取出浓淡值(灰度值)的线扫描(Laster扫描)。对于由此得到的一维信号,通过求出每一特定间隔的值,可以得到离散的信号。对于运动图像除进行水平,垂直两个方向的扫描以外,还有进行时间轴上的扫描。
通过采样,如设横向的像素数为M,纵向的像素数为N,则画面的大小可以表示为“M*N”个像素。
2.量化
经过采样,图像被分解成在时间上和空间上离散分布的像素,但是像素的值
(灰度值)还是连续值。像素的值,是指白色-灰色-黑色的浓淡值,有时候也指光的强度(亮度)值或灰度值。把这些连续的浓淡值或灰度值变为离散的值(整数值)的操作就是量化。
如果把这些连续变化的值(灰度值)量化为8bit,则灰度值被分成0-2552的256个级别,分别对应于各个灰度值的浓淡程度,叫做灰度等级或灰度标度。 在0-255的值对应于白-黑的时候,有以0为白,255为黑的方法,也有以0为黑,255为白的方法,这取决于图像的输入方法以及用什么样的观点对图像进行处理等,这是在编程时应特别注意的问题。但在只有黑白二值的二值图像的情形,一般设0为白,1为黑。
对连续的灰度值赋予量化级的,即灰度值方法有:均匀量化(uniform quantization),线性量化(liner quantization),对数量化,MAX量化,锥形量化(tapered quantization)等。
3. 采样、量化和图像细节的关系
上面的数字化过程,需要确定数值N和灰度级的级数K。在数字图像处理中,一般都取成2的整数幂,即:
N?2n (2.1) K?2m (2.2)
一幅数字图像在计算机中所占的二进制存储位数b为:
b?log(2m)N*N?N*N*m(bit) (2.3)
例如,灰度级为256级(m=8)的512×512的一幅数字图像,需要大约210万个存储位。随着N和m的增加,计算机所需要的存储量也随之迅速增加。
由于数字图像是连续图像的近似,从图像数字化的过程可以看到。这种近似的程度主要取决于采样样本的大小和数量(N值)以及量化的级数K(或m值)。N和K的值越大,图像越清晰
2.2 基本特点
(1)数字图像处理的信息大多是二维信息,处理信息量很大。如一幅256×256低分辨率黑白图像,要求约64kbit的数据量;对高分辨率彩色512×512图像,则要求768kbit数据量;如果要处理30帧/秒的电视图像
序列,则每秒要求500kbit~22.5Mbit数据量。因此对计算机的计算速度、存储容量等要求较高。
(2)数字图像处理占用的频带较宽。与语言信息相比,占用的频带要大几个数量级。如电视图像的带宽约5.6MHz,而语音带宽仅为4kHz左右。所以在成像、传输、存储、处理、显示等各个环节的实现上,技术难度较大,成本亦高,这就对频带压缩技术提出了更高的要求。
(3)数字图像中各个像素是不独立的,其相关性大。在图像画面上,经常有很多像素有相同或接近的灰度。就电视画面而言,同一行中相邻两个像素或相邻两行间的像素,其相关系数可达0.9以上,而相邻两帧之间的相关性比帧内相关性一般说还要大些。因此,图像处理中信息压缩的潜力很大。
(4)由于图像是三维景物的二维投影,一幅图象本身不具备复现三维景物的全部几何信息的能力,很显然三维景物背后部分信息在二维图像画面上是反映不出来的。因此,要分析和理解三维景物必须作合适的假定或附加新的测量,例如双目图像或多视点图像。在理解三维景物时需要知识导引,这也是人工智能中正在致力解决的知识工程问题。
(5)数字图像处理后的图像一般是给人观察和评价的,因此受人的因素影响较大。由于人的视觉系统很复杂,受环境条件、视觉性能、人的情绪爱好以及知识状况影响很大,作为图像质量的评价还有待进一步深入的研究。另一方面,计算机视觉是模仿人的视觉,人的感知机理必然影响着计算机视觉的研究。例如,什么是感知的初始基元,基元是如何组成的,局部与全局感知的关系,优先敏感的结构、属性和时间特征等,这些都是心理学和神经心理学正在着力研究的课题。
2.3 图像处理文件格式
2.3.1 MATLAB图像文件格式
MATLAB支持以下几种图像文件格式:
(1)PCX(Windows Paintbrush)格式。可处理1,4,8,16,24位等图像数据。文件内容包括:文件头(128字节),图像数据、扩展颜色映射表数据。
(2)BMP(Windows Bitmap)格式。有1,4,8,24位非压缩图像,8位RLE
(Run-length Encoded )图像。文件内容包括:文件头(一个BITMAP FILEHEADER数据结构),位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜色表)和图像数据。
(3)HDF(Hierarchical Data Format)格式。有8位,24位光栅数据集。 (4)JPEG(Joint Photographic Experts Group)格式,是一种成为联合图像专家组的图像压缩格式。
(5)TIFF(Tagged Image File Format)格式。处理1,4,8,24位非压缩图像,1,4,8,24位packbit压缩图像,一位CCITT压缩图像等。文件内容包括:文件头,参数指针表与参数域,参数数据表和图像数据四部分。
(6)XWD(X Windows Dump)格式。1,8位Zpixmaps,XYbitmaps,1位XYpixmaps。 (7)PNG(Portable Network Graphics)格式。 3 MATLAB
基本知识介绍
3.1 MATLAB的概述
MATLAB 是MATrix LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.
3.2 MATLAB在图像处理中的应用
图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下面就MATLAB 在图像处理中各方面的应用分别进行介绍。
(1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(),用来读取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd等格式图像文;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。