Matlab图像处理教程.pptx
- 文档编号:18701342
- 上传时间:2023-10-04
- 格式:PPTX
- 页数:86
- 大小:4.74MB
Matlab图像处理教程.pptx
《Matlab图像处理教程.pptx》由会员分享,可在线阅读,更多相关《Matlab图像处理教程.pptx(86页珍藏版)》请在冰点文库上搜索。
Matlab图像处理教程,GUI界面主要包括三个部分:
菜单项,控件,坐标轴,新建界面,消除默认菜单项figure,set(gcf,menubar,none);,新建一个名字为color的菜单项h_menu=uimenu(gcf,Label,在color菜单项下建立一个子菜单h_submenu1=uimenu(h_menu,Label,新菜单项句柄=uimenu(父类句柄,属性名1,属性值1,属性名2,属性值2,),控件对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,)句柄变量=axes(属性名1,属性值1,属性名2,属性值2,),作业,设计一个计算器,计算器可以任意的输入数字进行加、减、乘、除运算,并能在界面上现实结果1.先设计一个界面草图2.功能实现,GUI界面中参数如何传递的?
图像处理范畴,数字图像处理就是使用计算机处理数字图像。
分为3个等级:
低级处理、中级和高级处理。
低级处理特点就是输入与输出均为图像。
比如降低噪声的预处理、对比度增强和图像锐化等。
(图像处理)中级处理涉及诸如图像分割这样的任务,即把图像分为区域或对象,然后对对象进行描述。
其输入为图像,输出则是从图像中提取的属性(如边缘、轮廓等)。
(图像分析)高级处理通过执行通常与人类视觉相关的感知函数,来对识别的对象进行总体确认。
(图像理解),主要研究内容,1)图像变换。
由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。
因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。
目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。
2)图像编码与压缩。
图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。
压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。
编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。
3)图像增强和复原。
图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。
图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。
如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。
图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。
主要研究内容,4)图像分割。
图像分割是数字图像处理中的关键技术之一。
图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。
虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。
因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。
5)图像描述。
图像描述是图像识别和理解的必要前提。
作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。
对于特殊的纹理图像可采用二维纹理特征描述。
随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。
6)图像分类(识别)。
图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。
图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。
研究目的,一般来讲,对图像进行处理(或加工、分析)的主要目的有三个方面:
(1)提高图像的视感质量,如进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等,以改善图像的质量。
(2)提取图像中所包含的某些特征或特殊信息。
这些被提取的特征或信息往往为计算机分析图像提供便利。
提取特征或信息的过程是模式识别或计算机视觉的预处理。
提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等。
(3)图像数据的变换、编码和压缩,以便于图像的存储和传输。
/1、图像的读取和显示,一、图像的读取,A=imread(FILENAME,FMT),FILENAME指定图像文件的完整路径和文件名。
如果在work工作目录下只需提供文件名。
FMT为图像文件的格式对应的标准扩展名。
A=imread(lean256.BMP);%读入图像,二、图像的写入,imwrite(A,FILENAME,FMT),FILENAME参数指定文件名。
FMT为保存文件采用的格式。
imwrite(A,kk.bmp);,/1、图像的读取和显示,三、图像的显示,imshow(I,lowhigh),I为要显示的图像矩阵。
lowhigh为指定显示灰度图像的灰度范围。
高于high的像素被显示成白色;低于low的像素被显示成黑色;介于High和low之间的像素被按比例拉伸后显示为各种等级的灰色。
figure;imshow(I6);title(TheMainPassPartofTTC10373);,matlab图像类型,二值图像索引图像灰度图像真彩图像多帧图像,/1、图像的读取和显示,四、图像的格式转换,im2bw(I,LEVEL);,rgb2gray;从RGB图创建灰度图,存储类型不变。
im2uint8将图像转换成uint8类型,阈值法从灰度图、RGB图创建二值图。
LEVEL为指定的阈值;(0,1)。
im2double将图像转换成double类型,灰度图像能转成彩色图像吗?
/2、图像的几何运算,一、图像的加法运算,imadd(I,J);,两幅图像的大小要一致,数据类型一致,二、图像的减法运算,imsubtract(I,J);,imdivide(I,J);,immultiply(I,J);,三、图像的除法运算,四、图像的乘法运算,两幅图相乘除没有意义,/2、图像的几何运算,五、图像的缩放(p_6.m),imresize(A,mrows,ncols,method),六、图像的旋转,imrotate(A,angle,method),methodNearest:
最近邻插值Bilinear:
双线性插值Bicubic:
双三次插值,系统默认值,图像的点运算,点运算是直接对图像的像素值进行操作的,不会改变图像像素的位置,常见的灰度变换,1比例线性灰度变换2分段线性灰度变换3非线性灰度变换,1比例线性灰度变换,2分段线性灰度变换,3非线性灰度变换,图像的直方图,灰度级0,L-1,灰度直方图用离散函数h(rk)表示rk为第k级灰度,nk是图像中具有灰度级rk的像素数目,0kL-1,0nkn-1,n为图像总的像素数目。
归一化的直方图:
函数histogram表示,简写为h。
灰度直方图的定义,图像直方图函数imhist,例:
I=imread(lena256.bmp);subplot(1,2,1),imshow(I);subplot(1,2,2),imhist(I);,直方图均衡化,对于灰度级范围较低的灰度图像,可以通过直方图均衡化的方法来进行灰度变换。
Matlab使用histeq函数来实现直方图均衡化例:
I=imread(image1.bmp);G=imread(image2.bmp);K=histeq(I);subplot(3,2,1),imshow(I);subplot(3,2,2),imhist(I);subplot(3,2,3),imshow(G);subplot(3,2,4),imhist(G);subplot(3,2,5),imshow(K);subplot(3,2,6),imhist(K);通过实验,较窄的输入灰度级范围变换到了输出图像的整个亮度范围。
亮度和对比度都得到较大的增强。
四、灰度阈值变换及二值化,T为指定阈值,BW=im2bw(I,level);%level为人工设定阈值范围为0,1,thresh=graythresh(I);%自动设定所需的最优化阈值,OTSU算法:
最大类间方差法自动单阈值分割。
Kapur算法:
一维直方图熵阈值算法,niblack算法:
局部阈值分割阈值的计算公式是T=m+k*v,其中m为以该像素点为中心的区域的平均灰度值,v是该区域的标准差,k是一个系数。
kittlerMet:
表示kittler最小分类错误(minimumerrorthresholding)全局二值化算法。
原图像,直接阈值分割0.25,自动阈值分割,OTSU算法分割,KittlerMet算法,Niblack算法,Kapur算法,MATLAB在图像空域滤波的应用,图像滤波按作用域分为两类,即空间域和频域处理。
(1)空域处理是直接对图像进行处理
(2)频域处理则是在图像的某个变换域内,对图像的变换系数进行运算,然后通过逆变换获得图像增强效果。
/4、空间域图像增强,一、噪声添加,h=imnoise(I,type,parameters);,type为噪声类型,合法值如下:
添加高斯白噪声,添加椒盐噪声,/4、空间域图像增强,二、空间域滤波,滤波过程就是在图像f(x,y)中逐点移动模板,使模板中心和点(x,y)重合,滤波器在每一点(x,y)的响应是根据模板的具体内容并通过预先定义的关系来计算的。
空域滤波的步骤,
(1)定义中心点(x,y)
(2)对预先定义的以(x,y)为中心点的邻域内的像素进行运算(3)令运算结果为该点处处理的响应(4)对图像中的每一点重复此步骤,空域滤波基本原理,B=imfilter(f,w,option1,option2,);,f为要进行滤波操作的图像。
w为滤波操作使用的模板,为一个二维数组,可自己定义。
option1是可选项,包括:
1、边界选项(symmetric、replicate、circular)2、尺寸选项(same、full)3、模式选项(corr、conv),原图像,滤波后图像,三、滤波器设计,/4、空间域图像增强,h=fspecial(type,parameters),parameters为可选项,是和所选定的滤波器类型type相关的配置参数,如尺寸和标准差等。
type为滤波器的类型。
其合法值如下:
线性滤波,均值滤波,MATLAB线性空间滤波函数imfilter,B=imfilter(A,H)A是输入图像,B是滤波后的输出图像,H是滤波模板例:
I=imread(lena256.bmp);subplot(2,2,1),imshow(I)K1=imfilter(I,fspecial(average,33);K2=imfilter(I,fspecial(average,55);K3=imfilter(I,fspecial(average,77);subplot(2,2,2),imshow(K1)subplot(2,2,3),imshow(K2)subplot(2,2,4),imshow(K3),均值滤波的优缺点,均值滤波可以去除均值为0的白噪声,但却使得图像边缘模糊。
加权的滤波模板可以较好的解决上述问题,典型加权平均算子,
(1)中心加权算子,2)中心和四邻点加权算子,加权均值滤波,I=imread(rec.bmp);subplot(2,2,1),imshow(I)K1=imfilter(I,fspecial(gaussian,33);K2=imfilter(I,fspecial(gaussian,55);K3=imfilter(I,fspecial(gaussian,77);subplot(2,2,2),imshow(K1)subplot(2,2,3),imshow(K2)subplot(2,2,4),imshow(K3),非线性滤波器中值滤波,中值滤波就是用一个奇数点的移动窗口,将窗口中心点的值用窗口内各点的中值代替。
假设窗口内有五点,其值为80、90、200、110和120,那么此窗口内各点的中值即为110。
设有一个一维序列f1,f2,fn,取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相继抽出m个数fi-v,fi-1,fi,fi+1,fi+v(其中fi为窗口中心点值,v=(m-1)2),再将这m个点按其数值大小排序,取其序号为中心点的那个数作为滤波输出。
用数学公式表示为,中值滤波几种常用窗口,中值滤波示例,中值滤波函数medfilt2(),I=imread(board.bmp);subplot(2,2,1),imshow(I)K1=medfilt2(I,3,3);K2=medfilt2(I,5,5);K3=medfilt2(I,7,7);subplot(2,2,2),imshow(K1)subplot(2,2,3),imshow(K2)subplot(2,2,4),imshow(K3),中值滤波的用途,主要用于去除椒盐噪声,/4、空间域图像增强,五、图像锐化,图像锐化主要用于增强图像的灰度跳变部分,主要通过运算导数(梯度)或有限差分来实现。
主要方法有:
Robert交叉梯度,Sobel梯度,拉普拉斯算子,高提升滤波,高斯-拉普拉斯变换。
Robert交叉梯度,w1对接近正45边缘有较强响应,w2对接近负45边缘有较强响应。
Sobel交叉梯度,对水平边缘有较大响应,对垂直边缘有较大响应,拉普拉斯算子,I=imread(nir.bmp);I=double(I);%双精度化w1=-10;01;w2=0-1;10;G1=imfilter(I,w1,corr,replicate);%正45梯度G2=imfilter(I,w2,corr,replicate);%负45梯度G=abs(G1)+abs(G2);%计算Robert梯度figure;imshow(G,);figure;imshow(abs(G1),);figure;imshow(abs(G2),);,Robert交叉梯度,I=imread(nir.bmp);Id=double(I);%双精度化h_1=fspecial(log,5,0.5);%大小为5,sigma=0.5的LOG算子I_1=imfilter(Id,h_1,corr,replicate);figure;imshow(uint8(abs(I_1),);h_2=fspecial(log,5,2);%大小为5,sigma=2的LOG算子I_2=imfilter(Id,h_2,corr,replicate);figure;imshow(uint8(abs(I_2),);,高斯-拉普拉斯锐化,/5、频率域图像增强,用傅里叶变换表示的函数特征可以完全通过傅里叶反变换进行重建而不丢失任何信息,吉布斯现象Gibbsphenomenon(又叫吉布斯效应):
将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。
当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。
当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。
这种现象称为吉布斯现象。
幅度谱,相位谱,功率谱,一、傅里叶变换,/5、频率域图像增强,I=fft2(x);%快速傅里叶变换I=fft2(x,m,n);,x为输入图像;m和n分别用于将x的第一和第二维规整到指定的长度。
当m和n均为2的整数次幂时算法的执行速度要比m和n均为素数时快。
I1=abs(I);%计算I的幅度谱I2=angle(I);%计算I的相位谱Y=fftshift(I);%频谱平移,I=ifft2(x);%快速傅里叶逆变换I=ifft2(x,m,n);,幅度谱,相位谱,平移后的相位谱,functionout=imidealflpf(I,freq)%imidealflpf函数构造高斯频域低通滤波器M,N=size(I);out=ones(M,N);fori=1:
Mforj=1:
Nif(sqrt(i-M/2)2+(j-N/2)2)freq)out(i,j)=0;endendend,理想低通,functionout=imgaussflpf(I,sigma)%imgaussflpf函数构造高斯频域低通滤波器M,N=size(I);out=ones(M,N);fori=1:
Mforj=1:
Nout(i,j)=exp(-(i-M/2)2+(j-N/2)2)/2/sigma2);endend,高斯低通,/8、图像分割,一、图像分割概述,图像分割一般采用的方法有边缘检测(edgedetection)、边界跟踪(edgetracing)、区域生长(regiongrowing)、区域分离和聚合等。
图像分割算法一般基于图像灰度值的不连续性或其相似性。
不连续性是基于图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法。
相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。
二、边缘检测,图像的边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点,即灰度值导数较大或极大的地方。
边缘检测可以大幅度的减少数据量,并且剔除不相关信息,保留图像重要的结构属性。
边缘检测基本步骤:
平滑滤波、锐化滤波、边缘判定、边缘连接。
边缘检测算法:
基于一阶导数:
Roberts算子、Sobel算子、Prewitt算子基于二阶导数:
高斯-拉普拉斯边缘检测算子Canny边缘检测算法,Matlab实现,1)、基于梯度算子的边缘检测,BW=edge(I,type,thresh,direction,nothinning),thresh是敏感度阈值参数,任何灰度值低于此阈值的边缘将不会被检测到。
默认值为空矩阵,此时算法自动计算阈值。
direction指定了我们感兴趣的边缘方向,edge函数将只检测direction中指定方向的边缘,其合法值如下:
可选参数nothinning,指定时可以通过跳过边缘细化算法来加快算法运行的速度。
默认是thinning,即进行边缘细化。
2)、基于高斯-拉普拉斯算子的边缘检测,BW=edge(I,log,thresh,sigma),sigma指定生成高斯滤波器所使用的标准差。
默认时,标准差为2。
滤镜大小n*n,n的计算方法为:
n=ceil(sigma*3)*2+1。
3)、基于Canny算子的边缘检测,BW=edge(I,canny,thresh,sigma),thresh是敏感度阈值参数,默认值为空矩阵。
此处为一列向量,为算法指定阈值的上下限。
第一个元素为阈值下限,第二个元素为阈值上限。
如果只指定一个阈值元素,则默认此元素为阈值上限,其0.4倍的值作为阈值下限。
如阈值参数没有指定,则算法自行确定敏感度阈值上下限。
b1=imread(lena256.bmp);h58=fspecial(gaussian,5,0.8);b=imfilter(b1,h58);bw1=edge(b,sobel);%sobel算子bw2=edge(b,prewitt);%prewitt算子bw3=edge(b,roberts);%roberts算子bw4=edge(b,log);%log算子bw5=edge(b,canny);%canny算子figure;imshow(bw1);imwrite(bw1,nirbwsobel.bmp);figure;imshow(bw2);imwrite(bw2,nirbwprewitt.bmp);figure;imshow(bw3);imwrite(bw3,nirbwroberts.bmp);figure;imshow(bw4);imwrite(bw4,nirbwlog.bmp);figure;imshow(bw5);imwrite(bw5,nirbwcanny.bmp);,分析,1、边缘定位精度方面:
Roberts算子和Log算子定位精度较高。
Roberts算子简单直观,Log算子利用二阶导数零交叉特性检测边缘。
但Log算子只能获得边缘位置信息,不能得到边缘方向信息。
2、边缘方向的敏感性:
Sobel算子、Prewitt算子检测斜向阶跃边缘效果较好,Roberts算子检测水平和垂直边缘效果较好。
Log算子不具有边缘方向检测功能。
Sobel算子能提供最精确的边缘方向估计。
3、去噪能力:
Roberts算子和Log算子虽然定位精度高,但受噪声影响大。
Sobel算子和Prewitt算子模板相对较大因而去噪能力较强,具有平滑作用,能滤除一些噪声,去掉一部分伪边缘,但同时也平滑了真正的边缘,降低了其边缘定位精度。
总体来讲,Canny算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案。
补充,图像的裁剪I=imread(circuit.tif);I2=imcrop(I,7568130112);imshow(I),figure,imshow(I2),滤波时候边缘处理,对边缘进行扩充对边缘不进行处理,四近邻和八近邻,四连接和八连接连通区域,可以看到,通过统计连通域的个数,即可获得提取的目标物的个数。
四接连意义下为6个连通域。
八接连意义下为2个连通域。
腐蚀与膨胀是数学形态学中的基本运算。
腐蚀的作用是将目标进行收缩,膨胀的作用是将目标进行扩大。
结构元素是指具有某种确定形状的基本元素,如矩形、圆形、三角形等。
8.2.1腐蚀,腐蚀是一种消除边界点,使边界向内部收缩的过程,可以用来消除小且无意义的目标物。
过程:
将结构元素移动到连通区域,如果结构元素完全包含在连同区域中,则腐蚀后图像上该点为1,否则为0。
腐蚀实例,腐蚀实例,(a)原图(b)腐蚀两次,膨胀是将与目标区域接触的背景点合并到该目标中,使目标边界向外扩张的处理,可以用来填补目标区域中存在的某些空洞,以及消除包含在目标区域中的小颗粒噪声。
过程:
,如果结构元素中包含至少一将结构元素移动到连通区域个像素为1的点,则膨胀后图像上该点为1,否则为0。
膨胀实例,8.3开运算与闭运算(open&close),经过腐蚀处理后,目标物的面积小于原有的面积;经过膨胀处理后,目标物的面积大于原有的面积。
开闭运算就是为了解决此问题提出的。
开运算:
先腐蚀再膨胀。
闭运算:
先膨胀再腐蚀。
开运算实例,闭运算实例,/7、形态学图像处理,一、二值图像腐蚀,I2=imerode(I,SE);SE=strel(shape,parameters);,I为原始图像,可以是二值或者灰度图像。
shape指定了结构元素的形状。
parameters是和输入shape有关的参数。
/7、形态学图像处理,二、二值图像膨胀,I2=imdilate(I,SE);SE=strel(shape,parameters);,I为原始图像,可以是二值或者灰度图像。
shape指定了结构元素的形状。
parameters是和输入shape有关的参数。
原图像,腐蚀后,膨胀后,/7、形态学图像处理,三、其他二值图像运算,SE=strel(shape,parameters);I2=imopen(I,SE);%开运算I3=imclose(I,SE);%闭运算,四、连通分量提取,Lnum=bwlabel(Ibw,conn);,Ibw为一幅输入二值图像。
conn为可选参数,指明提取连通分量是4连通还是8连通。
默认为8。
L为连通分量标注图像。
num为二值图像Ibw中连通分量个数。
/7、形态学图像处理,五、bwmorph函数,Iout=bwmorph(I,operation,n),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 图像 处理 教程