matlab 图像处理 ppt,第五章 matlab在数字图像处理中的应用.ppt

1、第五章 matlab在数字图像处理中的应用,数字图像的读入,A=imread(filename,fmt): 将文件名为filename,扩展名为fmt(图像文件格式)表示的图像文件中的数据读到矩阵A中; 若filename所指为灰度图像,则A为二维矩阵,若filename为真彩色图像,则A为mn3的三维矩阵。,A=imread(filename,fmt): 字符串fmt的可能值有: “jpg”or “jpeg” “tif” or “tiff” “gif” “bmp” “png” “hdf” “pcx” “xwd” “cur” “ico”,图像文件的读入,图像文件的写入:,imwrite(A,f。

2、ilename,fmt): 将表示图像文件数据的矩阵A写入到文件名为filename,扩展名为fmt(图像文件格式)表示的图像文件中; A、filename、fmt意义与inread命令相同。,图像类型转换,在matlab系统下,要将一个类型的图像文件转换成另一个类型的图像文件也是一件轻而易举的事情,只要将前一个文件的图像数据读出,再写到后一个图像文件中去即可。 bitmap = imread(mybitmap.bmp,bmp); imwrite(bitmap,mybitmap.png,png);,图像的显示:,在matlab系统下,最常用的显示图像的函数为imshow函数,可用于显示各类图像。

3、,它的调用方法分别如下: imshow(X,map):显示索引图像,X为索引图像矩阵,map为色彩图示; imshow(I):显示灰度图像,I为二值图像矩阵; imshow(BW):显示二值图像,BW为黑白二值图像矩阵; imshow(RGB):显示RGB图像,RGB为RGB图像矩阵; imshow filename:显示图像文件,如imshow rice.png,I=imread(rice,png);%图像的读入 imshow(I);图像的显示 imshow rice.png,在不同显示板显示多个图像,imshow(I(:,:,:,1) figure; imshow(I(:,:,:,2) f。

4、igure; imshow(I(:,:,:,3),在一个显示板显示多个图像,X1,map1=imread(forest.tif); X2,map2=imread(trees.tif); subplot(1,2,1), imshow(X1,map1) subplot(1,2,2), imshow(X2,map2),用相同的colormap导致图像不清晰 不建议用imshow函数显示多个图像,X1,map1=imread(forest.tif); X2,map2=imread(trees.tif); subplot(1,2,1), subimage(X1,map1) subplot(1,2,2),。

5、 subimage(X2,map2),在一个显示板显示多个图像,图像的一些特殊显示手段:,对图像加颜色条:对于了解被显示图像的灰度级别特别有用。,I=imread(rice,png); imshow(I); colorbar;,一次显示多层图像的所有层,mri = uint8(zeros(128,128,1,27); for frame=1:27 mri(:,:,:,frame),map = imread(mri.tif,frame); end montage(mri,map);,动画显示多层图像,mri = uint8(zeros(128,128,1,27); for frame=1:27 。

6、mri(:,:,:,frame),map = imread(mri.tif,frame); end mov = immovie(mri,map); %构建动画文件 movie(mov); %播放动画,纹理成图功能,前面提到的图像显示手段都只能使图像在二维平面上显示,matlab的一个强大功能是能将平面图像显示在空间三维曲面上,由warp函数来实现。,I=imread(flowers,jpg); x,y,z=cylinder; subplot(1,2,1);warp(x,y,z,I);,x,y,z=sphere(50); subplot(1,2,2);warp(x,y,z,I),图像的空间转换,。

7、改变图像的尺寸: B=imresize(A,m,method): 返回一个m倍于原图像A的图像B,使用的差值方法由method指定。 B=imresize(A,mrows,mcols,method): 返回一个尺寸大小为mrows行乘以mcols列的图像B。,B=imresize(I,2); Imshow(B);,图像的旋转,B=imrotate(A,angle,method): angle为正,则逆时针旋转,为负,则顺时针旋转。 图像B由图像A旋转angle角度得到,通常大于图像A B=imrotate(A,angle,method,crop): 图像B由图像A旋转angle角度得到,尺寸与。

8、A相等。,原图,B=imrotate(I,45);,B=imrotate(I,45,crop);,B=imcrop(I,rect): rect为可选参数,指定选取的图像区域,其数据格式为:xmin,ymin,width,height; 也可使用不带参数的imcrop函数,则等待用户利用鼠标在待裁减图像上进行选择。,图像的裁剪,B=crop(I,40,40,80,80); Imshow(B);,imshow circuit.tif I = imcrop; imshow(I);,图像分析与提高,图像直方图及密度均衡; 图像的噪声去除。 图像的边缘检测;,图像直方图,定义:如果将图像中像素亮度(灰度。

9、级别)看成是一个随机变量,则其分布情况就反映了图像的统计特性,可用PDF(Probability Density Function)来刻画和描述,表现为灰度直方图。灰度直方图是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中每种灰度出现的频率。 灰度直方图的横坐标是灰度级,纵坐标是该灰度出现的频率。,灰度直方图的计算,编程实现灰度直方图的计算与绘制 I=imread(rice.png); a,b=size(I); H=zeros(1,256); for i=1:a for j=1:b for k=0:255 if I(i,j)=k H(k+1)=H(k+1)+1; end e。

10、nd end end plot(H);,利用matlab函数绘制直方图,I=imread(rice.png); imhist(I); %绘制直方图,直方图均衡,当某些图像灰度分布集中于某一个区域时,图像会出现过亮或过暗的情况,在这种情况下可以利用直方图均衡的方法使得图像灰度值均匀分布在全部灰度值范围内,或者使其灰度值分布与一已知的灰度分布一致。 J=histeq(I,hgram):将图像I进行灰度转换,使得转换后的图像J的灰度直方图具有hgram的分布。 J=histeq(I,n):将图像I进行灰度转换,使得转换后的图像J的灰度分布具有n个灰度级别,且每一个灰度级别内的像素数相等。,I=imr。

11、ead(pout.tif); subplot(2,2,1);imshow(I); subplot(2,2,2);imhist(I); J=histeq(I); subplot(2,2,3);imshow(J); subplot(2,2,4);imhist(J);,直方图灰度转换,可以按照需要将某一图像的某一区域的灰度值进行转换。 J=imadjust(I,low_in,high_in,low_out,high_out); J=imadjust(I),I=imread(cameraman.tif); imshow(I); J = imadjust(I,0 0.2,0.5 1); imshow(J。

12、),数字图像的噪声,噪声:妨碍人们感觉器官对所接收的信源信息理解的因素。 图像增强:不考虑图像降质的原因,只将图像中感兴趣的区域加以处理,这种方法称为图像增强。 图像恢复:针对图像降质的具体原因,设法补偿降质因素,使得图像尽可能地逼近原图像,这种称为图像恢复。,给图像施加噪声,J=imnoise(I,type,parameters); type可以是:gaussian,localvar,poisson,salt imshow(I); figure; imshow(J),邻域平均法去除噪声,邻域平均法是一种利用Box模板对图像进行模板操作的图像平滑方法,所谓Box模板是指模板中系数都取相同值的模。

13、板,常用的3*3和5*5模板如下:,邻域平均法去除噪声,Box模板对当前像素及其相邻的像素点都一视同仁,统一进行平均处理,这样就可以滤去图像中的噪声。 邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定的噪声,主要优点是算法简单,计算速度快,缺点是会噪声图像一定程度上的模糊。,例:利用邻域平均法对加了椒盐噪声的图像进行去噪处理,I = imread(eight.tif); J = imnoise(I,salt imshow(f_J),利用imfilter函数进行邻域平均法,B = imfilter(A,H) A:带有噪声的图像;H:滤波器 例: I = imread。

14、(coins.png); h = ones(5,5) / 25; I2 = imfilter(I,h);,中值滤波法去除噪声,中值滤波:用一个奇数点的移动窗口,将窗口中心点的值用窗口内各点的中值代替。 中值滤波的输出与输入噪声的密度分布有关,对随机噪声的抑制能力,中值滤波效果一般,但对于脉冲干扰,中值滤波效果较好。,利用medfilt2函数进行中值滤波,B = medfilt2(A,m n) A:带有噪声的图像; m n:mn维的滤波窗口,默认为3*3窗口。 例: I = imread(eight.tif); J = imnoise(I,salt imshow(J), figure, imsh。

15、ow(K),图像二值化,图像二值化处理是灰度阈值化的一种应用,选择一阈值,将图像转换成黑白二值图像,用于图像分割及边缘跟踪等预处理。 图像阈值化处理的变换函数表达式为:,例:将图像coins.png二值化处理,I = imread(coins.png); a,b=size(I); for i=1:a for j=1:b if I(i,j)=80 J(i,j)=0; else J(i,j)=255; end end end figure;imshow(J),im2bw函数进行图像二值化,J=im2bw(I,level) 将图像I进行二值化处理,图像I像素值大于level的设为白色,其余设为黑色。。

16、 例: I=imread(coins.png); J=im2bw(I,80); imshow(J);,图像的边缘检测,边缘点为“信号变化剧烈的地方”,即图像中灰度值或色彩变化剧烈之处。可利用各种微分运算进行边缘检测。 常用的梯度算子有:roberts、prewitt、sobel等。,利用edge函数进行边缘检测,J=edge(I,k) 对图像I进行边缘检测,采用K定义的算子进行。 例: I = imread(coins.png); imshow(I) BW1 = edge(I,sobel); BW2 = edge(I,canny); imshow(BW1) figure; imshow(BW2),Sobel算子,canny算子。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值