图像预处理算法MATLAB实现指令.docx
- 文档编号:24680432
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:26
- 大小:32.12KB
图像预处理算法MATLAB实现指令.docx
《图像预处理算法MATLAB实现指令.docx》由会员分享,可在线阅读,更多相关《图像预处理算法MATLAB实现指令.docx(26页珍藏版)》请在冰豆网上搜索。
图像预处理算法MATLAB实现指令
绪论
数字图像处理(DigitalImageProcessing),就是利用数字计算机或则其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。
例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。
总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。
目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。
1.2数字图像处理的特点及其应用
在计算机出现之前,模拟图像处理占主导地位。
随着计算机的发展,数字图像处理发展速度越来越快。
尽管目前一般采用顺序处理的计算机,对大数据量的图像处理速度不如光学方法快,但是其处理的精度高,实现多种功能的、高度复杂的运算求解非常灵活方便。
在其短短的历史中,它却成功的应用于几乎所有与成像有关的领域,并正发挥相当重要的作用。
1.2.1数字图像处理的特点同模拟图像处理相比,数字图像处理有很多优点。
主要表现在:
1.精度高不管是对4bit还是8bit和其他比特图像的处理,对计算机程序来说几乎是一样的。
即使处理图像变大,只需改变数组的参数,而处理方法不变。
所以从原理上不管处理多高精度的图像都是可能的。
而在模拟图像处理中,要想使精度提高一个数量级,就必须对处理装置进行大幅度改进。
2.再现性好不管是什么图像,它们均用数组或集合表示。
将它们输入到计算机内,用计算机容易处理的方式表示。
在传送和复制图像时,只在计算机内部进行处理,这样数据就不会丢失或遭破坏,保持了完好的再现性。
而在模拟图像处理中,就会因为各种干扰及设备故障而无法保持图像的再现性。
3.通用性、灵活性高
1
图像预处理系统设计
绪论
不管是可视图像还是X线照片、红外线热成像、超声波图像等不可见光成像,尽管这些图像成像体系中的设备规模和精度各不相同,但当把图像信号直接进行A/D变换,或记录成照片再数字化,对于计算机来说都能用二维数组表示,不管什么样的图像都可以用同样的方法进行处理,这就是计算机处理的通用性。
另外,对处理程序自由加以改变,可进行各种各样的处理。
如上下滚动、漫游、拼图、合成、变换、放大、缩小和各种逻辑运算等,所以灵活性很高。
1.2.2
图像预处理的内容在图像分析中,对输入图像进行特征抽取、分割和匹配前所进行的处理。
图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。
预处理过程一般有数字化、几何变换、归一化、平滑、复原和增强等步骤。
1.数字化一幅原始照片的灰度值是空间变量(位置的连续值)的连续函数。
在M×N点阵上对照片灰度采样并加以量化(归为2b个灰度等级之一),可以得到计算机能够处理的数字图像。
为了使数字图像能重建原来的图像,对M、N和b值的大小就有一定的要求。
在接收装置的空间和灰度分辨能力范围内,M、N和b的数值越大,重建图像的质量就越好。
当取样周期等于或小于原始图像中最小细节周期的一半时,重建图像的频谱等于原始图像的频谱,因此重建图像与原始图像可以完全相同。
由于M、N和b三者的乘积决定一幅图像在计算机中的存储量,因此在存储量一定的条件下需要根据图像的不同性质选择合适的M、N和b值,以获取最好的处理效果。
2.几何变换
用于改正图像采集系统的系统误差和仪器位置的随机误差所进行的变换。
对于卫星图像的系统误差,如地球自转、扫描镜速度和地图投影等因素所造成的畸变,可以用模型表示,并通过几何变换来消除。
随机误差如飞行器姿态和高度变化引起的误差,难以用模型表示出来,所以一般是在系统误差被纠正后,通过把被观测的图和已知正确几何位置的图相比较,用图中一定数量的地面控制点解双变量多项式函数组而达到变换的目的。
3.归一化
使图像的某些特征在给定变换下具有不变性质的一种图像标准形式。
图像的某些性质,例如物体的面积和周长,本来对于坐标旋转来说就具有不变的性质。
在一般情况下,某些因素或变换对图像一些性质的影响可通过归一化处理得到消除或减弱,从而可以被选作测量图像的依据。
例如对于光照不可控的遥感图片,
图像预处理系统设计
绪论
灰度直方图的归一化对于图像分析是十分必要的。
灰度归一化、几何归一化和变换归一化是获取图像不变性质的三种归一化方法。
4.图像平滑
消除图像中随机噪声的技术。
对平滑技术的基本要求是在消去噪声的同时不使图像轮廓或线条变得模糊不清。
常用的平滑方法有中值法、局部求平均法和k近邻平均法。
局部区域大小可以是固定的,也可以是逐点随灰度值大小变化的。
此外,有时应用空间频率域带通滤波方法。
5.复原
校正各种原因所造成的图像退化,使重建或估计得到的图像尽可能逼近于理想无退化的像场。
在实际应用中常常发生图像退化现象。
例如大气流的扰动,光学系统的像差,相机和物体的相对运动都会使遥感图像发生退化。
基本的复原技术是把获取的退化图像g(x,y)看成是退化函数h(x,y)和理想图像f(x,y)的卷积。
它们的傅里叶变换存在关系G(u,v=H(u,v)F(u,v)。
根据退化机理确定退化函数后,就可从此关系式求出F(u,v),再用傅里叶反变换求出f(x,y)。
通常把称为反向滤波器。
实际应用时,由于H(u,v)随离开uv平面原点的距离增加而迅速下降,为了避免高频范围内噪声的强化,当u2+v2大于某一界限值W娿时,使M(u,v)等于1。
W0的选择应使H(u,v)在u2+v2≤W范围内不会出现零点。
图像复原的代数方法是以最小二乘法最佳准则为基础。
寻求一估值,使优度准则函数值最小。
这种方法比较简单,可推导出最小二乘法维纳滤波器。
当不存在噪声时,维纳滤波器成为理想的反向滤波器。
6.增强
对图像中的信息有选择地加强和抑制,以改善图像的视觉效果,或将图像转变为更适合于机器处理的形式,以便于数据抽取或识别。
例如一个图像增强系统可以通过高通滤波器来突出图像的轮廓线,从而使机器能够测量轮廓线的形状和周长。
图像增强技术有多种方法,反差展宽、对数变换、密度分层和直方图均衡等都可用于改变图像灰调和突出细节。
实际应用时往往要用不同的方法,反复进行试验才能达到满意的效果。
1.2.3数字图像处理的应用计算机图像处理和计算机、多媒体、智能机器人、专家系统等技术的发展紧密相关。
近年来计算机识别、理解图像的技术发展很快,也就是图像处理的目的除了直接供人观看(如医学图像是为医生观看作诊断)外,还进一步发展了与计算机视觉有关的应用,如邮件自动分检,车辆自动驾驶等。
下面仅罗列了一些典型应用实例,而实际应用更广。
1.在生物医学中的应用
3
图像预处理系统设计
1、主要包括显微图像处理;DNA显示分析;红、白血球分析计数;虫卵及组织切片的分析;癌细胞的识别;染色体分析等等。
2.遥感航天中的应用军事侦察、定位、导航、指挥等应用;
多光谱卫星图像分析;
地形、地图、国土普查;
地质、矿藏勘探;
天文、太空星体的探测及分析等。
3.工业应用CAD和CAM技术用于模具、零件制造、服装、印染业;
零件、产品无损检测,焊缝及内部缺陷检查;
交通管制、机场监控;火车车皮识别等。
4.军事公安领域中的应用巡航导弹地形识别;
指纹自动识别;
警戒系统及自动火炮控制;
反伪装侦察;
手迹、人像、印章的鉴定识别;
过期档案文字的复原;
集装箱的不开箱检查等。
5.其他应用图像的远距离通信;
多媒体计算机系统及应用;
电视电话;
服装试穿显示;
理发发型预测显示;
电视会议;
办公自动化、
现场视频管理等。
1.3MATLAB
1.3.1matlab简述MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强
4
大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1.3.2matlab处理图像的特点:
第一,MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。
第二,友好的工作平台和编程环境。
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
第三,简单易用的程序语言。
Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
第四,强大的科学计算机数据处理能力。
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
第五,出色的图形处理功能,MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
第六,应用广泛的模块集合工具箱,MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
文章主要分为四部分,其中,文章的开头简单介绍了数字图像应用的发展过程,还对本文应用的matlab开发工具的发展进行简单讲述。
文章的第二部分主要针对图像预处理系统中怎么做到灰度转换及灰度直方图的构建。
第三部分讲的是图像的预处理技术,其中包括图像平滑、锐化等。
第四部分讲的是噪声处理,噪声特性以及matlab去除噪声的方法。
数字图像处理的灰度直方图
第二章数字图像处理的灰度直方图
2.1灰度的定义
灰度使用黑色调表示物体。
每个灰度对象都具有从0%(白色)到
图2.1灰度条
100%(黑色)的亮度值。
使用黑白或灰度扫描仪生成的图像通常以灰度显示。
使用灰度还可将彩色图稿转换为高质量黑白图稿。
灰度级变换(点运算)的定义★对于输入图象f(x,y),灰度级变换T将产生一个输出图像g(x,y),且g(x,y)的每一个像素值都是由f(x,y)的对应输入像素点的值决定的,g(x,y)=T(f(x,y))。
★对于原图象f(x,y)和灰度值变换函数T(f(x,y)),由于灰度值总是有限个(如:
O~255),非几何变换可定义为:
R=T(r)。
2.2直方图定义
直方图:
图像直方图是图像处理中一种十分重要的图像分析工具,它描述了一幅图像的灰度级内容,任何一幅图像的直方图都包含了丰富的信息,它主要用在图象分割,图像灰度变换等处理过程中。
从数学上来说图像直方图是图像各灰度值统计特性与图像灰度值的函数,它统计一幅图像中各个灰度级出现的次数或概率;从图形上来说,它是一个二维图,横坐标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像各个像素点出现的次数或概率。
直方图的纵坐标都对应着该灰度级在图像中出现的概率。
2.2.1直方图的典型用途对图像进行数字化时,利用直方图可以检查输入图像的灰度值在可利用的灰度范围内分配得是否适当。
6
图像预处理系统设计
数字图像处理的灰度直方图
在医学方面,为了改善X射线操作人员的工作条件,可采用低辐射X射线曝光,但这样获得的X光片灰度级集中在暗区,导致某些图像细节无法看清,判读困难。
通过直方图修正使灰度级分布在人眼合适的亮度区域,便可使X片中的细节清晰可见。
可以根据直方图确定二值化的阈值;当物体部分的灰度值比其它部分的灰度值大时,可以用直方图求出物体的面积(实际上是象素数=灰度大于和等于q的象素的总和);
当物体部分的灰度值比其它部分的灰度值大时,可以用直方图求出物体的面积(实际上是象素数=灰度大于和等于q的象素的总和);
利用色彩直方图可以进行基于颜色的图象分割。
2.2.2灰度直方图的计算若图象具有L级灰度(通常L=256,即8位灰度级),则大小为m(n的灰度图象f(x,Y)的灰度直方图H[k],k=0…L-1,可按如下步骤计算获得:
1)初始化数据,清空表中所以内容;
2)对图像中的各个像素中的灰度级进行统计,并把其相各个灰度级中所对应的像素点统计下来;
3)用横坐标表示图像中各个像素点的灰度级,纵坐标表示各个灰度级上图像各个像素点出现的次数或概率。
2.2.3图像直方图实现代码
[A,map]=imread('f:
\234.bmp');
imshow(A,map),image=double(A);
fori=1:
256,a(i)=0;
end,fori=1:
256,forj=1:
256,b=image(i,j)+1;
a(b)=a(b)+1;
end,
end,
fork=1:
256,p(k)=a(k)/(256^2);
end,
figure,
stem(p);
数字图像处理的灰度直方图
用上述代码生成图2.2的直方图,结果如图2.3所示。
0.025
0.02
0.015
0.01
0.005
0
0
50
100
150
200
250
300
图2.2原图
图2.3直方图
2.3直方图均衡
中文名称:
直方图均衡英文名称:
histogramequalization定义:
使原直方图变换为具有均匀密度分布的直方图,然后按该直方图调整原图像的一种图像处理技术。
2.3.1直方图均衡原理直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。
若像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S是归一化后的灰度值,其灰度变换函数T(R)为:
S=T(R)=∑pr(Rj)=∑
j=0j=okk
njn
;
0≤Rj≤l?
1;k=0,1…
(2-1)
式中,Pr(Rj)是第j级灰度值的概率,nj是图像中j级灰度的像素总数,l是图像中灰度级的总数目,n是图象中像素的总数。
对变换后的S值取最靠近的一个灰度级的值,建立灰度级变换表,将原图像变换为直方图均衡的图像。
下面是实现图像直方图均衡化函数的源代码和效果图:
2.3.2直方图均衡的实现
(1)对给定的待处理图像统计其直方图,求出Pr(rk)=nk/N.
(2)根据统计出的直方图采用累积分布函数作变换,求变换后的新灰度;
k
Sk=T(Rk)=∑pr(Rj)
j=0
(2-2)
8
图像预处理系统设计
数字图像处理的灰度直方图
(3)用新灰度代替旧灰度,求出Ps(s),这一步是近似过程,应根据处理目的尽量做到合理,同时把灰度值相等或近似地合并到一起。
[A,map]=imread('f:
\456.bmp');imshow(A,map),title('原图');image=double(A);fori=1:
256,n(i)=0;end,fori=1:
256,forj=1:
256,s=image(i,j)+1;n(s)=n(s)+1;end,end,fork=1:
256,p(k)=n(k)/(256^2);end,figure,bar(p,'r');title('直方图');fork=1:
256,q(k)=0;end,fork=1:
256,forj=1:
k,q(k)=q(k)+p(j);end,end,figure,bar(q,'y');title('累积直方图');N=256;fork=1:
256,o(k)=round((N-1)*q(k)+0.5);end,
9
图像预处理系统设计
数字图像处理的灰度直方图
fori=1:
256,forj=1:
256,rimage(i,j)=(image(i,j));endendfigure,imshow(uint8(rimage));title('均衡化后的图');fori=1:
256,n(i)=0;end,fori=1:
256,forj=1:
256,s=rimage(i,j)+1;n(s)=n(s)+1;end,end,fork=1:
256,p(k)=n(k)/(256^2);end,figure,bar(p,'b');title('均衡化的直方图');
0.025
0.02
0.015
0.01
0.005
0
0
50
100
150
200
250
300
图2.4原图
图2.5原始图象的直方图
10
图像预处理系统设计
数字图像处理的灰度直方图
0.025
0.02
0.015
0.01
0.005
0
0
50
100
150
200
250
300
图2.6直方图均衡化后的效果图
图2.7均衡化后的直方图
从上述效果图可以看出,经过直方图均衡化处理后,图像变的清晰了,从直方图来看,处理后的LENA的图像直方图分布更均匀了,在每个灰度级上图像都有像素点。
但是直方图均衡化存在着两个缺点:
(1)变换后图像的灰度级减少,某些细节消失;
(2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。
11
图像预处理系统设计
图像平滑与图像锐化
第三章
3.1图像的平滑
图像平滑与图像锐化
图像的平滑方法是一种实用的图像处理技术,能减弱或消除图像中的高频率分量,但不影响低频率分量。
因为高频率分量主要对应图像中的区域边缘等灰度值具有较大较快变化的部分,平滑滤波将这些分量滤去可减少局部灰度起伏,使图像变得比较平滑。
实际应用中,平滑滤波还可用于消除噪声,或者在提取较大目标前去除过小的细节或将目标内的小间断连接起来。
它的主要目的是消除图像采集过程中的图像噪声,在空间域中主要利用邻域平均法、中值滤波法和选择式掩模平滑法等来减少噪声;在频率域内,由于噪声主要存在于频谱的高频段,因此可以利用各种形式的低通滤波器来减少噪声。
本节主要介绍常用的空间域图像平滑方法。
3.1.1领域平均法基础理论最简单的平滑滤波是将原图中一个像素的灰度值和它周围邻近8个像素的灰度值相加,然后将求得的平均值(除以9)作为新图中该像素的灰度值。
它采用模板计算的思想,模板操作实现了一种邻域运算,即某个像素点的结果不仅与本像素灰度有关,而且与其邻域点的像素值有关。
模板运算在数学中的描述就是卷积运算,这里不再赘述。
邻域平均法也可以用数学公式表达:
设f(i,j)为给定的含有噪声的图像,经过邻域平均处理后的图像为g(i,j),则:
g(i,j)=∑f(i,j),(i,j)∈M,(3-1)NM所取邻域中各邻近像素的坐标,N是邻域中包含的邻近像素的个数。
邻
?
111?
1?
域平均法的模板为:
?
111?
,中间的黑点表示以该像素为中心元素,即该像?
9?
111?
?
?
素是要进行处理的像素。
在实际应用中,也可以根据不同的需要选择使用不同的模板尺寸,如3×3、5×5、7×7、9×9等。
邻域平均处理方法是以图像模糊为代价来减小噪声的,且模板尺寸越大,噪声减小的效果越显著。
如果f(i,j)是噪声点,其邻近像素灰度与之相差很大,采用邻域平均法就是用邻近像素的平均值来代替它,这样能明显消弱噪声点,使邻域中灰度接近均匀,起到平滑灰度的作用。
因此,邻域平均法具有良好的噪声平滑效果,是最简单的一种平滑方法。
12
图像预处理系统设计
图像平滑与图像锐化
3.1.2算法实现程序中采用的是3×3的模板,即把当前图像f(i,j)和它周围8个像素的灰度值相加,然后将求得的平均值(除以9)作为该点的像素值。
[A,map]=imread('f:
\234.bmp');figure
(1);imshow(A,map),title('原图');image=double(A);fori=1:
256,a(i)=0;end,fori=2:
255,forj=2:
255,b=image(i-1,j-1)+image(i-1,j)+image(i-1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 预处理 算法 MATLAB 实现 指令