引言 数字图像处理(Digital Image Processing)是指利用计算机对图像进行去除噪声、增强、复原、分割、提取特征等的理论、方法和技术。一般,图像处理是用计算机和实时硬件实现的,因此也称之为计算机图像处理(Computer Image Processing)。
在日常生活中,图像处理已经得到广泛应用。例如,电脑人像艺术,电视中的特殊效果,自动售货机的钞票识别,邮政编码的自动识别和利用指纹、虹膜、面部等特征的身份识别等。在医学领域,很早以前就采用X射线透视、显微镜照片等来诊断疾病。现在,计算机图像处理已成为疾病诊断的重要手段,用一般摄影方法不能获取的身体内部的状况,也能由特殊的图像处理装置获取,最具有代表性的就是X射线CT(Computed Tomograph,计算机断层摄像)。
1 数字图像处理的目的
一般而言,对图像进行加工和分析主要有如下三方面的目的:
(1)提高图像的视感质量,以达到赏心悦目的目的。如去除图像中的噪声,改变图像的亮度、颜色,增强图像中的某些成份、抑制某些成份,对图像进行几何变换等,从而改善图像的质量,以达到或真实的、或清晰的、或色彩丰富的、或意想不到的艺术效果。
(2)提取图像中所包含的某些特征或特殊信息,以便于计算机分析,例如,常用作模式识别、计算机视觉的预处理等。这些特征包括很多方面,如频域特性、灰度/颜色特性、边界/区域特性、纹理特性、形状/拓扑特性及关系结构等。
(3)对图像数据进行变换、编码和压缩,以便于图像的存储和传输。
2 数字图像处理研究的主要内容
不管图像处理是何种目的,都需要用计算机图像处理系统对图像数据进行输入、加工和输出,因此数字图像处理研究的内容主要有以下7个过程。
(1)图像获取、表示和表现。(Image Acquisition, Representation and Presentation)
该过程主要是把模拟图像信号转化为计算机所能接受的数字形式,以及把数字图像显示和表现出来(如打印)。这一过程主要包括摄取图像、光电转换及数字化等几个步骤。
(2)图像复原。(Image Restoration)
当造成图像退化(图像品质下降)的原因已知时,复原技术可以对图像进行校正。图像复原最关键的是对每种退化都需要有一个合理的模型。
(3)图像增强。(Image Enhancement)
图像增强是对图像质量在一般意义上的改善。当无法知道图像退化有关的定量信息时,可以使用图像增强技术较为主观地改善图像的质量。所以,图像增强技术是用于改善图像视感质量所采取的一种方法。
(4)图像分割。(Image Segmentation)
把图像分成区域的过程就是图像分割。图像中通常包含多个对象,例如,一幅医学图像中显示出正常的或有病变的各种器官和组织。图像处理为达到识别和理解的目的,几乎都必须按照一定的规则将图像分割成区域,每个区域代表被成像的一个物体(或部分)。图像自动分割是图像处理中最困难的问题之一。
(5)图像分析。(Image Analyse)
图像处理应用的目标几乎均涉及图像分析,即对图像中的不同对象进行分割、特征提取和表示,从而有利于计算机对图像进行分类、识别和理解。
(6)图像重建。(Image Reconstruction)
图像重建与上述的图像增强、图像复原等不同。图像增强、图像复原的输入是图像,处理后输出的结果也是图像,而图像重建是指从数据到图像的处理,即输入的是某种数据,而经过处理后得到的结果是图像,CT就是图像重建处理的典型应用实例。
(7)图像压缩编码(Image Coding)
图像编码主要是利用图像信号的统计特性和人类视觉的生理学及心理学特性,对图像信号进行高效编码,即研究数据压缩技术,目的是在保证图像质量的前提下压缩数据,便于存储和传输,以解决数据量大的矛盾。
3 Matlab和图像处理工具箱的背景知识
Matlab是一种交互系统,其基本数据元素是并不要求确定维数的一个数组。这就允许人们用公式化方法求解许多技术计算问题,特别是涉及矩阵表示的问题。Matlab是matrix laboratory的缩写,由LINPACK和ELSPACK项目开发,最初用于矩阵处理。Matlab对于研究、开发和分析也是首选的计算工具。Matlab中补充了许多针对于特定应用的工具箱。图象处理工具箱是一个Matlab函数,它扩展了Matlab解决图象处理问题的能力。
4 基于MATLAB的实验系统
(1)功能。
利用ORL头像数据库,利用KL算法(PCA)实现对其中任意一个人的检索(用Matlab实现)。
(2)主要程序。
function example(flag)
if nargin<1;flag=’startup’;end%允许在无宗量输入下,调用该函数
clf reset % <1>
……
set(gcf,’menubar’,’none’);%删除图形窗工具条
str=’数字图象处理作业’;
set(gcf,’name’,str,’numbertitle’,’off’);%书写图形窗名
……
set(h_sub2,’callback’,[...%%执行关闭命令后,产生回调操作
’close,’,]);……%
……
function mbookzzy(filename)
%mbookzzy.m在MATLAB指令窗中创建或打开Notebook文件
%filename已有的Notebook文件全名(或包含路径名和扩展名的)字符串
%调用mbookzzy新建Notebook文件
%mbookzzy(filename)打开已有Notebook文件
wp1=’progra~1’;%DOS识别’program files’目录的简约符
wp2=’micros~2’;%DOS识别microsoft office’目录的简约符
wtm=’作业’;%DOS识别’templates’目录的简约符
wpathzzy=[’c:\’,wp1,’\’,wp2,’\office\winword.exe’];
templatezzy=[’e:\’,wtm,’\题目要求.doc’];
czzy=’/mmwNewNotebookFromCmdLines&’;
switch(nargin)
case(0)
dos([wpathzzy,templatezzy,czzy]);
case(1)
if~exist(filename)
error(’指定文件不在路径上或不存在。’)
end
dos([wpathzzy,filename,’&’]);
end.