您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Matlab图像处理教程及方法
/1、图像的读取和显示/2、图像的点运算/4、空间域图像增强/5、频率域图像增强/6、彩色图像处理/7、形态学图像处理/8、图像分割/9、特征提取/3、图像的几何变换/1、图像的读取和显示一、图像的读取A=imread(FILENAME,FMT)FILENAME指定图像文件的完整路径和文件名。如果在work工作目录下只需提供文件名。FMT为图像文件的格式对应的标准扩展名。I_1=imread('D:\10.06.08nir\TTC10377.BMP');%读入图像二、图像的写入imwrite(A,FILENAME,FMT)FILENAME参数指定文件名。FMT为保存文件采用的格式。imwrite(I6,'nirdilatedisk2TTC10373.bmp');/1、图像的读取和显示三、图像的显示imshow(I,[lowhigh])I为要显示的图像矩阵。[lowhigh]为指定显示灰度图像的灰度范围。高于high的像素被显示成白色;低于low的像素被显示成黑色;介于High和low之间的像素被按比例拉伸后显示为各种等级的灰色。figure;imshow(I6);title('TheMainPassPartofTTC10373');figure;%创建一个新的窗口figure;subplot(m,n,p);imshow(I);Subplot(m,n,p)含义为:打开一个有m行n列图像位置的窗口,并将焦点位于第p个位置上。/1、图像的读取和显示四、图像的格式转换im2bw(I,LEVEL);rgb2gray;从RGB图创建灰度图,存储类型不变。im2uint8将图像转换成uint8类型阈值法从灰度图、RGB图创建二值图。LEVEL为指定的阈值;(0,1)。im2double将图像转换成double类型/2、图像的点运算灰度直方图描述了一副图像的灰度级统计信息,主要应用于图像分割和图像灰度变换等处理过程中。从数学角度来说,图像直方图描述图像各个灰度级的统计特性,它是图像灰度值的函数,统计一幅图像中各个灰度级出现的次数或概率。归一化直方图可以直接反映不同灰度级出现的比率。横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。imhist(I);%灰度直方图I=imread(‘red.bmp’);%读入图像figure;%打开新窗口[M,N]=size(I);%计算图像大小[counts,x]=imhist(I,32);%计算有32个小区间的灰度直方图counts=counts/M/N;%计算归一化灰度直方图各区间的值stem(x,counts);%绘制归一化直方图一、图像直方图图像直方图归一化/2、图像的点运算二、灰度的线性变换BAAABfDfDfDFa1时,输出图像的对比度将增大;Fa1时,输出图像对比度将减小。Fa=1且Fb非零时,所有像素的灰度值上移或下移,使整个图像更暗或更亮。Fa0,暗区变亮,亮区变暗。/2、图像的点运算三、灰度的对数变换skctlogc为尺度比例常数,s为源灰度值,t为变换后的目标灰度值。k为常数。灰度的对数变换可以增强一幅图像中较暗部分的细节,可用来扩展被压缩的高值图像中的较暗像素。广泛应用于频谱图像的显示中。Warning:log函数会对输入图像矩阵s中的每个元素进行操作,但仅能处理double类型的矩阵。而从图像文件中得到的图像矩阵大多是uint8类型的,故需先进行im2double数据类型转换。I=imread('nir.bmp');%读入图像F=fft2(im2double(I));%FFTF=fftshift(F);%FFT频谱平移F=abs(F);T=log(F+1);%频谱对数变换figure;imshow(F,[]);title('未经变换的频谱');figure;imshow(T,[]);title('对数变换后');/2、图像的点运算三、灰度的Gamma变换espxy其中,x、y的取值范围为[0,1]。esp为补偿系数,r则为Gamma系数。Gamma变换是根据r的不同取值选择性的增强低灰度区域的对比度或者高灰度区域的对比度。J=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)I=imread('nir.bmp');figure;imshow(imadjust(I,[],[],0.75));%gamma=0.5title('Gamma0.5');原NIR图像Gamma0.5四、灰度阈值变换及二值化Gamma1.5TxTxxf2550T为指定阈值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算法/2、图像的点运算五、直方图均衡化ADiiMaxABHADDfD00[J,T]=histeq(I);%J为输出图像,T为变换矩阵图像易受光照、视角、方位、噪声等的影响。使得同一类图像的不同变形体之间的差距有时大于该类图像与另一类图像之间的差距,影响图像识别、分类。图像归一化就是将图像转换到唯一的标准形式以抵抗各种变换,从而消除同类图像不同变形体之间的外观差异。也称为图像灰度归一化。原图像及直方图图像变亮后灰度均衡化图像变暗后灰度均衡化/3、图像的几何变换一、图像平移1010001]1[]1[0011yxTTyxyx1010001]1[]1[1100yxTTyxyx正变换逆变换strel%用来创建形态学结构元素translate(SE,[yx])%原结构元素SE上y和x方向平移imdilate%形态学膨胀/3、图像的几何变换I=imread('nir.bmp');se=translate(strel(1),[180190]);B=imdilate(I,se);figure;subplot(1,2,1),subimage(I);title('原图像');subplot(1,2,2),subimage(B);title('平移后图像');/3、图像的几何变换二、图像镜像B=imtransform(A,TFORM,method);TFORM=makeform(transformtype,Matrix);%空间变换结构Method合法值含义‘bicubic’双三次插值‘bilinear’双线性插值‘nearest’最近邻插值参数transformtype指定了变换的类型,常见的’affine’为二维或多维仿射变换,包括平移、旋转、比例、拉伸和错切等。Matrix为相应的仿射变换矩阵。A=imread('nir.bmp');[height,width,dim]=size(A);tform=maketform('affine',[-100;010;width01]);B=imtransform(A,tform,'nearest');tform2=maketform('affine',[100;0-10;0height1]);C=imtransform(A,tform2,'nearest');figure;imshow(A);figure;imshow(B);imwrite(B,'nir水平镜像.bmp');figure;imshow(C);imwrite(B,'nir垂直镜像.bmp');原图像水平镜像图像垂直镜像图像A=imread('nir.bmp');tform=maketform('affine',[010;100;001]);B=imtransform(A,tform,'nearest');figure;imshow(A);figure;imshow(B);imwrite(B,'nir转置后图像.bmp');/3、图像的几何变换三、图像转置/3、图像的几何变换四、图像中心旋转B=imrotate(A,angle,method,’crop’);angle为旋转角度,正值为逆时针旋转。可选参数method为imrotate函数指定插值方法。‘crop’选项会裁减旋转后增大的图像,保持和原图像同样大小。A=imread('nir.bmp');B=imrotate(A,30,'nearest','crop');figure;imshow(B);imwrite(B,'逆时针中心旋转30度.bmp');逆时针30度/4、空间域图像增强一、噪声添加h=imnoise(I,type,parameters);type为噪声类型,合法值如下:‘gaussian’高斯白噪声:幅度为高斯分布,功率谱均匀分布‘salt&pepper’黑点如胡椒,白点如盐粒。由图像传感器、传输信道、解码处理、图像切割等产生的黑白相间的亮暗点噪声。添加高斯白噪声添加椒盐噪声/4、空间域图像增强二、空间域滤波滤波过程就是在图像f(x,y)中逐点移动模板,使模板中心和点(x,y)重合,滤波器在每一点(x,y)的响应是根据模板的具体内容并通过预先定义的关系来计算的。W(-1,-1)W(-1,0)W(-1,1)W(0,-1)W(0,0)W(0,1)W(1,-1)W(1,0)W(1,1)f(x-1,y-1)f(x-1,y)f(x-1,y+1)f(x,y-1)f(x,y)f(x,y+1)f(x+1,y-1)f(x+1,y)f(x+1,y+1)B=imfilter(f,w,option1,option2,…);f为要进行滤波操作的图像。w为滤波操作使用的模板,为一个二维数组,可自己定义。option1……是可选项,包括:1、边界选项(’symmetric’、’replicate’、’circular’)2、尺寸选项(’same’、’full’)3、模式选项(’corr’、’conv’)原图像滤波后图像三、滤波器设计/4、空间域图像增强h=fspecial(type,parameters)合法取值功能‘average’平均模板‘disk’圆形领域的平均模板‘gaussian’高斯模板‘laplacian’拉普拉斯模板‘log’高斯-拉普拉斯模板‘prewitt’Prewitt水平边缘检测算子‘sobel’Sobel水平边缘检测算子parameters为可选项,是和所选定的滤波器类型type相关的配置参数,如尺寸和标准差等。type为滤波器的类型。其合法值如下:/4、空间域图像增强四、中值滤波h=medfilt2(I1,[m,n]);m和n为中值滤波处理的模板大小,默认3*3中值滤波本质上是一种统计排序滤波器。中值不同于均值,是指排序队列中位于中间位置的元素的值。中值滤波并非线性滤波器。对于某些类型的随机噪声具有非常理想的降噪能力。典型的应用就是消除椒盐噪声。/4、空间域图像增强五、图像锐化图像锐化主要用于增强图像的灰度跳变部分,主要通过运算导数(梯度)或有限差分来实现。主要方法有:Robert交叉梯度,Sobel梯度,拉普拉斯算子,高提升滤波,高斯-拉普拉斯变换。10011wRobert交叉梯度01102ww1对接近正45°边缘有较强响应,w2对接近负45°边缘有较强响应。Sobel交叉梯度1210001-2-1-1w101-202-101-w2对水平边缘有较大响应对垂直边缘有较大响应拉普拉斯算子01014-
本文标题:Matlab图像处理教程及方法
链接地址:https://www.777doc.com/doc-2057867 .html