版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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('bacteria.BMP');%读入图像
figure;%打开新窗口[M,N]=size(I);%计算图像大小[counts,x]=imhist(I,32);%计算有32个小区间的灰度直方图counts=counts/M/N;%计算归一化灰度直方图各区间的值stem(x,counts)一、图像直方图图像直方图归一化/2、图像的点运算二、灰度的线性变换Fa>1时,输出图像的对比度将增大;Fa<1时,输出图像对比度将减小。Fa=1且Fb非零时,所有像素的灰度值上移或下移,使整个图像更暗或更亮。Fa<0,暗区变亮,亮区变暗。/2、图像的点运算三、灰度的对数变换c为尺度比例常数,s为源灰度值,t为变换后的目标灰度值。k为常数。灰度的对数变换可以增强一幅图像中较暗部分的细节,可用来扩展被压缩的高值图像中的较暗像素。广泛应用于频谱图像的显示中。Warning:log函数会对输入图像矩阵s中的每个元素进行操作,但仅能处理double类型的矩阵。而从图像文件中得到的图像矩阵大多是uint8类型的,故需先进行im2double数据类型转换。I=imread('fft_exp.bmp');%读入图像F=fft2(im2double(I));%FFTF=fftshift(F);%FFT频谱平移F=abs(F);T=log(F+1);%频谱对数变换figure;imshow(F,[]);title('未经变换的频谱');figure;imshow(T,[]);title('对数变换后');四、灰度阈值变换及二值化T为指定阈值BW=im2bw(I,level);%level为人工设定阈值范围为[0,1]I=imread('blood1.bmp');BW=im2bw(I,0.2);imshow(BW)thresh=graythresh(I);%自动设定所需的最优化阈值I=imread('blood1.bmp');thresh=graythresh(I);BW=im2bw(I,thresh);imshow(BW)/2、图像的点运算五、直方图均衡化[J,T]=histeq(I);%J为输出图像,T为变换矩阵图像易受光照、视角、方位、噪声等的影响。使得同一类图像的不同变形体之间的差距有时大于该类图像与另一类图像之间的差距,影响图像识别、分类。图像归一化就是将图像转换到唯一的标准形式以抵抗各种变换,从而消除同类图像不同变形体之间的外观差异。也称为图像灰度归一化。原图像及直方图图像变亮后灰度均衡化图像变暗后灰度均衡化/3、图像的几何变换一、图像平移正变换逆变换strel%用来创建形态学结构元素translate(SE,[yx])%原结构元素SE上y和x方向平移imdilate%形态学膨胀/3、图像的几何变换I=imread('lena.bmp');se=translate(strel(1),[3045]);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('bunny.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;subplot(131),imshow(A);subplot(132);imshow(B);subplot(133);imshow(C);A=imread('lena.bmp');tform=maketform('affine',[010;100;001]);B=imtransform(A,tform,'nearest');figure;subplot(121),imshow(A);subplot(122),imshow(B);/3、图像的几何变换三、图像转置/3、图像的几何变换四、图像中心旋转B=imrotate(A,angle,method,’crop’);angle为旋转角度,正值为逆时针旋转。可选参数method为imrotate函数指定插值方法。‘crop’选项会裁减旋转后增大的图像,保持和原图像同样大小。
A=imread('lena.bmp');B=imrotate(A,30,'nearest','crop');figure;subplot(121),imshow(A);subplot(122),imshow(B);逆时针30度/4、空间域图像增强一、噪声添加h=imnoise(I,type,parameters);type为噪声类型,合法值如下:‘gaussian’高斯白噪声:幅度为高斯分布,功率谱均匀分布‘salt&pepper’黑点如胡椒,白点如盐粒。由图像传感器、传输信道、解码处理、图像切割等产生的黑白相间的亮暗点噪声。添加高斯白噪声添加椒盐噪声I=imread('eight.tif');h1=imnoise(I,'gaussian',0.02);figure;subplot(121),imshow(h1);h2=imnoise(I,'salt&pepper',0.04);subplot(122),imshow(h2)/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=medfilt2(I1,[m,n]);m和n为中值滤波处理的模板大小,默认3*3中值滤波本质上是一种统计排序滤波器。中值不同于均值,是指排序队列中位于中间位置的元素的值。中值滤波并非线性滤波器。对于某些类型的随机噪声具有非常理想的降噪能力。典型的应用就是消除椒盐噪声。I=imread('eight.tif');h1=imnoise(I,'gaussian',0.02);figure;subplot(221),imshow(h1);h2=imnoise(I,'salt&pepper',0.04);subplot(222),imshow(h2);h=medfilt2(h2,[3,3]);subplot(223),imshow(h);/4、空间域图像增强五、图像锐化图像锐化主要用于增强图像的灰度跳变部分,主要通过运算导数(梯度)或有限差分来实现。主要方法有:Robert交叉梯度,Sobel梯度,拉普拉斯算子,高提升滤波,高斯-拉普拉斯变换。Robert交叉梯度w1对接近正45°边缘有较强响应,w2对接近负45°边缘有较强响应。Sobel交叉梯度对水平边缘有较大响应对垂直边缘有较大响应拉普拉斯算子I=imread('eight.tif');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;subplot(131),imshow(G,[]);Subplot(132),imshow(abs(G1),[]);subplot(133),imshow(abs(G2),[]);Robert交叉梯度I=imread('eight.tif');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、频率域图像增强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);/6、彩色图像处理色彩模型:RGB模型、CMY模型、CMYK模型、HIS模型、HSV模型、YUV模型、YIQ模型。RGB模型国际照明委员会(CIE)规定以蓝(435.8nm)、绿(546.1nm)和红(700nm)作为主原色。RGB_image=cat(3,PR,PG,PB);%将PR、PG、PB三个矩阵在第3个维度上进行级联,进行图像合成PR=RGB_image(:,:,1);%提取红色分量PG=RGB_image(:,:,2);%提取绿色分量PB=RGB_image(:,:,3);%提取蓝色分量Matlab中一幅RGB图像可表示为一个M*N*3的3维矩阵。其中每一个彩色像素都在特定空间位置的彩色图像中对应红、绿、蓝3个分量。CMY模型CMY模型是采用(Cyan、Magenta、Yellow)青、品红、黄色3中基本原色按一定比例合成颜色。由于色彩的显示是由光线被物体吸收掉一部分之后反射回来的剩余光线产生,故CMY模型又称为减色法混色模型。当光都被吸收时成为黑色,都被反射时为白色。HSI模型HIS模型是从人的视觉系统出发,直接使用颜色三要素色调(Hue)、饱和度(Saturation)和亮度(Intensity)来描述颜色。亮度指人眼感觉光的明暗程度。光的能量越大,亮度越大。色调由物体反射光线中占优势的波长决定。反映颜色的本质。饱和度指颜色的深浅和浓淡程度,饱和度越高,颜色越深。HIS色彩空间比RGB彩色空间更符合人的视觉特性。亮度和色度具有可分离特性,使得图像处理和机器视觉中大量灰度处理算法都可在HIS彩色空间中方便使用。色调强度饱和度其中/7、形态学图像处理一、二值图像腐蚀I2=imerode(I,SE);SE=strel(shape,parameters);I为原始图像,可以是二值或者灰度图像。shape指定了结构元素的形状。parameters是和输入shape有关的参数。合法取值功能描述‘arbitrary’或为空任意自定义结构元素‘disk’圆形结构元素‘square’正方形结构元素‘rectangle’矩形结构元素‘line’线性结构元素‘pair’包含2个点的结构元素‘diamond’菱形的结构元素‘octagon’8角形的结构元素/8、图像分割一、图像分割概述图像分割一般采用的方法有边缘检测(edgedetection)、边界跟踪(edgetracing)、区域生长(regiongrowing)、区域分离和聚合等。
图像分割算法一般基于图像灰度值的不连续性或其相似性。
不连续性是基于图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法。
相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。二、边缘检测图像的边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点,即灰度值导数较大或极大的地方。
边缘检测可以大幅度的减少数据量,并且剔除不相关信息,保留图像重要的结构属性。
边缘检测基本步骤:平滑滤波、锐化滤波、边缘判定、边缘连接。边缘检测算法:基于一阶导数:Roberts算子、Sobel算子、Prewitt算子基于二阶导数:高斯-拉普拉斯边缘检测算子Canny边缘检测算法Matlab实现1)、基于梯度算子的边缘检测BW=edge(I,type,thresh,direction,’nothinning’)type合法取值梯度算子‘sobel’sobel算子‘prewitt’prewitt算子‘reberts’robert算子thresh是敏感度阈值参数,任何灰度值低于此阈值的边缘将不会被检测到。默认值为空矩阵[],此时算法自动计算阈值。direction指定了我们感兴趣的边缘方向,edge函数将只检测direction中指定方向的边缘,其合法值如下:direction合法值边缘方向‘horizontal’水平方向‘vertical’竖直方向‘both’所有方向可选参数’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('blood1.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;subplot(231),imshow(bw1);subplot(232),imshow(bw2);subplot(233),imshow(bw3);subplot(234),imshow(bw4);subplot(235),imshow(bw5);
Matlab图像类型转换1.图像类型转换的必要性
对于索引图像进行滤波时,必须把它转换为RGB图像,否则光对图像的下标进行滤波,得到的结果是毫无意义的。2.各种类型图像的转换关系索引图像灰度图像真彩图像二值图像数据矩阵
功能:将灰度图像转换成索引图像。格式:[X,map]=gray2ind(I,n)
按照指定的灰度级n把灰度图像I转换成索引图像X,map为gray(n),n的缺省值为64。例:
I=imread('cameraman.tif');[X,map]=gray2ind(I,16);imshow(X,map);figure,imshow(I);2.gray2ind函数
功能:通过设定阈值将灰度图像转换成索引色图像。格式:X=grayslice(I,n)
例:I=imread('cameraman.tif');X=grayslice(I,16);imshow(I);figure,imshow(X,bone(16));
3.grayslice函数
功能:将灰度图像、索引色图像和真彩色图像转化成二值图像。
格式:BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)
level是一个归一化阈值,取值在[0,1]。4.im2bw函数例:真彩色转换为二值图像I=imread('autumn.tif');X=im2bw(I,0.5);imshow(I);figure,imshow(X);
功能:将索引图像转换成灰度图像。
格式:I=ind2gray(X,map)5.ind2gray函数索引图像转换成灰度图像
功能:将索引色图像转换成真彩色图像。格式:RGB=ind2rgb(X,map)例:
[I,map]=imread('m83.tif');X=ind2rgb(I,map);imshow(I,map);figure,imshow(X);6.ind2rgb函数
功能:将一个数据矩阵转换成一幅灰度图像。
格式:I=mat2gray(A,[aminamax])I=mat2gray(A)7.mat2gray函数
功能:将一幅真彩色图像转换成灰度图像。
格式:I=rgb2gray(RGB)
例:
RGB=imread('autumn.tif');X=rgb2gray(RGB);imshow(RGB);figure,imshow(X);
8.rgb2gray函数
转换效果图
功能:将真彩色图像转换成索引色图像。
格式:
[X,map]=rgb2ind(RGB,n)
例:
RGB=imread('autumn.tif');[X,map]=rgb2ind(RGB,128);imshow(RGB);figure,imshow(X,map);
9.rgb2ind函数
补充:图像的运算
imadd(X,Y);
Y可以是另一幅图像,也可以是一个常数。
例1:
I=imread('rice.png');J=imread('cameraman.tif');K=imadd(I,J);subplot(131);imshow(I);subplot(132);imshow(J);subplot(133);imshow(K);△图像的加法
例2:实现亮度的增加
RGB=imread('greens.jpg');RGB1=imadd(RGB,50);subplot(1,2,1);imshow(RGB);subplot(1,2,2);imshow(RGB1);
△图像的减法Z=imsubtract(X,Y);
计算X与Y的像素之差,负数将被截取为0。
Z=imabsdiff(X,Y);
计算X与Y的像素之差的绝对值,结果为非负的。根据RGB图像创建一幅灰度图像I=imread('Plane211.jpg');I2=rgb2gray(I);imshow(I);figure,imshow(I2);二值图像的取反操作I=imre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年交通信号灯工程变更与调整处理合同
- 2024年家居墙纸定制安装服务协议版B版
- 2024年土石方工程承揽详细协议模板版
- 2024年专业软件系统开发合同模板版B版
- 2024个人转让二手车合同范本
- 2024年大型港口码头建设工程合同
- 2024专项建筑项目合作经营合同版B版
- (2024版)高端装备制造技术与专利许可合同
- 2024富士康电子支付系统技术授权合同3篇
- 2024年定制私房工程承建协议细则版B版
- 陈杰《传感器与检测技术(第二版)》课后习题答案【完整版】
- 青霉素及其发酵生产工艺课件(共50页).ppt
- 截止阀合格证模板
- 创新声卡KX驱动的安装与调试教程
- 八年级上册英语期末复习计划
- Unit3-How-many教案+反思
- 湖南水文地质条件概况
- 沪科版八年级上册数学全册教学课件(2021年10月整理)
- 北京2010年中考化学 试卷分析 人教版
- 狼疮性肾炎中医诊疗方案
- 汽车维修月报表
评论
0/150
提交评论