当前位置:文档之家› MATLAB函数处理图像实现膨胀腐蚀

MATLAB函数处理图像实现膨胀腐蚀

MATLAB函数处理图像实现膨胀腐蚀
MATLAB函数处理图像实现膨胀腐蚀

MATLAB 函数处理图像实现膨胀腐蚀

一、实验目的

1、了解二值形态学的基本运算

2、掌握二值图像膨胀、腐蚀的基本方法

3、编程实现膨胀、腐蚀

二、实验要求

1、使用imdilate 函数进行图像膨胀,并观察膨胀后图像的变化。

2、使用imerode 函数进行图像腐蚀,观察腐蚀后的图像变化情况。

三、实验原理

膨胀:将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。利用它可以填补物体中的空洞。B 对X 膨胀所产生的二值图像D 是满足以下条件的点(x,y )的集合:如果B 的原点平移到点(x,y ),那么它与X 的交集非空。 数学表达式:B A C ⊕=

腐蚀:一种消除边界点,使边界向内部收缩的过程。利用它可以消除小而且无意义的物体。B 对X 腐蚀所产生的二值图像E 是满足以下条件的点(x,y)的集合:如果B 的原点平移到点(x,y ),那么B 将完全包含于X 中。数学表达式:B A C Θ=

膨胀处理:一种消除边界点,使边界点向内部收缩的过程。

腐蚀处理:将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。

四、实验步骤

1.图像膨胀的Matlab 实现:

可以使用imdilate 函数进行图像膨胀,imdilate 函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel 函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,

imdilate还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。

步骤1,首先创建一个包含矩形对象的二值图像矩阵。

>> BW=zeros(9,10);

>> BW(4:6,4:7) =1

BW =

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 1 1 1 1 0 0 0

0 0 0 1 1 1 1 0 0 0

0 0 0 1 1 1 1 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

步骤2,使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。

>> SE=strel('square',3)

SE =

Flat STREL object containing 9 neighbors.

Neighborhood:

1 1 1

1 1 1

1 1 1

步骤3,将图像BW和结构元素SE传递给imdilate函数。

>> BW2=imdilate(BW,SE)

BW2 =

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

步骤4,显示结果。

>> imshow(BW,'notruesize')

>> imshow(BW2,'notruesize')

2.图像腐蚀的Matlab实现:

可以使用imerode函数进行图像腐蚀。imerode函数需要两个基本输入参数:待处理的输入图像以及结构元素对象。此外,imerode函数还可以接受3个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。M——指定原始图像的行数。

以下程序示例说明了如何对某一副具体图像进行腐蚀操作,腐蚀前后的效果对比如图末。

步骤1,读取图像cameraman.tif (该图像是Matlab当前目录下自带的图片)>> BW1=imread('cameraman.tif');

步骤2,创建一个任意形状的结构元素对象

>> SE=strel('arbitrary',eye(5));

步骤3,以图像BW1和结构元素SE为参数调用imerode函数进行腐蚀操作。>> BW2=imerode(BW1,SE);

步骤4,显示操作结果

>> imshow(BW1)

>> figure,imshow(BW2)

五、实验代码及结果

代码:

imerode函数,该函数能够实现二值图像的腐蚀操作;

imdilate函数,该函数能够实现二值图像的膨胀操作;

bw=imread(‘d:\image1’)

bw=rgb2gray(bw)

se1=strel(‘disk’,11);

se2=strel(‘line’,11,90);

bw2= imdilate(bw,se2);

bw1=imerode(bw,se1);

imshow(bw),title(‘原图’)

figure,imshow(bw2), title(‘膨胀后的图像’)

figure,imshow(bw1), title(‘腐蚀后的图像’)

结果:

原图膨胀后的图像

腐蚀后的图像

六、实验心得体会

通过本次的实验,我了解了二值形态学的基本运算,掌握了二值图像膨胀、腐蚀的基本方法,并且会运用编程实现膨胀、腐蚀,本次的实验目的已经完成,意识到在以后的生活中要了解做事情的目的,注重每一个与细节,认真思考遇到的所有问题,提高自己各方面的能力。感谢尹强老师教会我们理论与实践知识,也让我明白了什么是学习,怎么样学习,为以后的生活奠定的基础与指引了方向。

Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全 一、通用函数: colorbar 显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage imshow 显示图像 语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...) montage 在矩形框中同时显示多幅图像 语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...) immovie 创建多帧索引图的电影动画 语法:mov=immovie(X,map) \ mov=immovie(RGB) subimage 在一副图中显示多个图像 语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \ subimage(x,y,...) \ subimage(...) truesize 调整图像显示尺寸 语法:truesize(fig,[mrows mcols]) \ truesize(fig)

北航数图实验报告四图像腐蚀和膨胀

北航数图实验报告四图像腐蚀和膨 胀 部门: xxx 时间: xxx 整理范文,仅供参考,可下载自行编辑

北京航空航天大学 数字图像处理实验报告 实验四:图像分割处理 学院 专业方向 班级 学号 学生姓名 指导教师 实验四图像分割处理实验 1.实验目的 <1)了解图像分割的基本原理,并利用图像分割算法进行图像分割处理; <2)掌握数学形态学的基本运算。 2.实验内容 <1)利用类间方差阈值算法实现图像的分割处理; <2)利用形态学处理进行处理结果修正。 3. 实验要求

<1)实验用图: <2)对输入图像进行平滑处理,以减小噪声对分割处理的影响; <3)利用类间方差阈值算法对滤波处理后图像进行分割处理,获取分割图像; <4)利用数学形态学中的腐蚀和膨胀运算处理,剔除分割处理结果中的一些细小的残余误分割点,在进行腐蚀和膨胀运算时可采用半径为r的圆形结构元素,注意比较选取不同r值时的处理结果。b5E2RGbCAP 四、实验代码 function STshiyan4_OpeningFcn(hObject, eventdata, handles, varargin>p1EanqFDPw I=imread('4.bmp'>。 I=rgb2gray(I>。 subplot(3,3,1>。

imshow(I>。 title('原图像'>。 IM=medfilt2(I>。%中值滤波 subplot(3,3,2>。 imshow(IM>。 title('中值滤波后图像'>。 function pushbutton1_Callback(hObject, eventdata, handles>DXDiTa9E3d I1=imread('4.bmp'>。 I1=rgb2gray(I1>。 T=Otsu(I1>。 IM1=medfilt2(I1>。 s=size(IM1>。 for m=1:s(1> for n=1:s(2> if IM1(m,n>>=T IM1(m,n>=255。 else IM1(m,n>=0。 end end end

matlab中图像函数大全

Matlab中图像函数大全 图像增强 除高频噪声 1、lps 2、中值滤波(非线性) 3、空域模板滤波 1. 直方图均衡化的 Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X,map) 就算和显示索引色图像 X 的直方图,map 为调色板。用 stem(x,counts) 同样可以显示直方图。 1.2 imcontour 函数 功能:显示图像的等灰度值图 格式:imcontour(I,n),imcontour(I,v) 说明:n 为灰度级的个数,v 是有用户指定所选的等灰度级向量。 1.3 imadjust 函数 功能:通过直方图变换调整对比度 格式:J=imadjust(I,[low high],[bottom top],gamma) newmap=imadjust(map,[low high],[bottom top],gamma) 说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r,[low high] 为原图像中要变换的灰度范围,[bottom top] 指定了变换后的灰度范围;newmap=imadjust(map,[low high],[bottom top],gamma) 调整索引色图像的调色板 map 。此时若 [low high] 和 [bottom top] 都为2×3的矩阵,则分别调整 R、G、B 3个分量。 1.4 histeq 函数 功能:直方图均衡化 格式:J=histeq(I,hgram) J=histeq(I,n) [J,T]=histeq(I,...) newmap=histeq(X,map,hgram) newmap=histeq(X,map) [new,T]=histeq(X,...)

MATLAB膨胀腐蚀(开,闭运算)源代码

clear,clc; h=imread('ceshi2.bmp'); i=im2bw(h); i1i=187; i1j=192; for ai=181:193 for aj=186:198 if(sqrt(double(ai-i1i)^2+double(aj-i1j)^2)<=5) i(ai,aj)=1;%定义圆形结构元素 end end end figure,imshow(i); i1=i; for i1i=6:205%用B腐蚀A for i1j=6:205 flag=0; if(i1i>=181&&i1i<=193&&i1j>=186&&i1j<=198) continue; else if(i(i1i,i1j)==1) for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i1(ai,aj)==0&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=0; flag=1; break; end end if(flag==1) break; end end end end end end figure,imshow(i); %在上面C的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀C for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204)

continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面D的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀D for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204) continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面E的图像上用B进行腐蚀 i1=i;

MATLAB图像处理相关函数

一、通用函数: colorbar显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \ [...]=getimage imshow 显示图像 语法:imshow(I,n) \ imshow(I,[low high]) \ imshow(BW) \ imshow(X,map) \ imshow(RGB)\ imshow(...,display_option) \ imshow(x,y,A,...) \ imshow filename \ h=imshow(...) montage 在矩形框中同时显示多幅图像 语法:montage(I) \ montage(BW) \ montage(X,map) \ montage(RGB) \ h=montage(...) immovie 创建多帧索引图的电影动画 语法:mov=immovie(X,map) \ mov=immovie(RGB) subimage 在一副图中显示多个图像 语法:subimage(X,map) \ subimage(I) \ subimage(BW) \ subimage(RGB) \ subimage(x,y,...) \ subimage(...) truesize 调整图像显示尺寸 语法:truesize(fig,[mrows mcols]) \ truesize(fig) warp 将图像显示到纹理映射表面 语法:warp(X,map) \ warp(I ,n) \ warp(z,...) warp(x,y,z,...) \ h=warp(...) zoom 缩放图像 语法:zoom on \ zoom off \ zoom out \ zoom reset \ zoom \ zoom xon \ zoom yon\ zoom(factor) \ zoom(fig,option) 二、图像文件I/O函数命令 imfinfo 返回图形图像文件信息 语法:info=imfinfo(filename,fmt) \ info=imfinfo(filename) imread 从图像文件中读取(载入)图像 语法:A=imread(filename,fmt) \ [X,map]=imread(filename,fmt) \

图像的腐蚀和膨胀

图像的腐蚀和膨胀 研究背景和意义 依据数学形态学集合论方法发展起来的图像处理方法,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析和理论。数学形态学是图像处理和模式识别领域的新方法,其基本的思想是:用具有一定形态的结构元素去度量和提取图像中的对应形状,已达到图像分析和识别的目的。 优势有一下几点:有效滤除噪声,保留图像中原有信息,算法很容易用并行处理方法有效实现,基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点很少。 二.原理 特殊领域运算形式——结构元素,在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结果是输出图像的相应像素。运算效果取决于结构元素大小、内容以及逻辑运算性质。 结构元素:膨胀和腐蚀操作的最基本组成部分,用于测试输出图像,通常要比待处理的图像小的多。二维平面结构元素由一个数值为0或1的矩阵组成。结构元素的原点(锚点)指定了图像中需要处理的像素范围,结构元素中数值为1的点决定结构元素的领域像素在进行膨胀或腐蚀操作时是否需要参与计算。 常见的形态学运算有腐蚀和膨胀两种: 腐蚀:删除对象边缘某些像素。

膨胀:给图像中的对象边缘添加像素。 三.算法及效果图 膨胀算法:用3X3的结构元素扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为0,结果图像的该像素点为0,否则为1。膨胀算法的效果是使二值图像扩大一圈。 腐蚀的算法:用3X3的结构元素,扫描图像的每一个像素点,用结构元素与其覆盖的二值图像做“与”操作,如果结果都为1,结果图像的该像素点为1,否则为0。 膨胀算法的结果:是二值图像减少一圈。 四.组合使用效果 先腐蚀后膨胀的过程:利用它可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不会明显改变原来物体的面积。 先膨胀后腐蚀的过程:利用它可以填充物体内细小空洞,连接临近物体、平滑其边界,但同时并不会明显改变原来物体的面积。 通常由于噪声的影响,图像在阈值化后所得到的边界通常都很不平滑,物体区域具有一些噪声孔,而背景区域上散布着一些小的噪声物体,连续的开和闭运算可以有效的改善这种情况。而有时,我们需要经过多次腐蚀,然后再加上相同次数的膨胀,才能产生比较好的处理效果。可见图像的腐蚀与膨胀相结合有时可以使图像有较理想的处理效果。 图像处理分为多种,对于不同的图像腐蚀和膨胀的定义不同。 1. 形态学图像处理是在图像中移动一个结构元素,然后将结构元素

C 图像的膨胀和腐蚀

C++图像的膨胀和腐蚀 二值图像是一种简单的图像格式,它只有两个灰度级,即"0"表示黑色的像素点,"255"表示白色的像素点,至于如何从一幅普通的图像获得二值图像,请参考我近期在天极网上发表的《Visual C++编程实现图像的分割》一文。二值图像处理在图像处理领域占据很重要的位置,在具体的图像处理应用系统中,往往需要对于获得的二值图像再进一步进行处理,以有利于后期的识别工作。二值图像处理运算是从数学形态学下的集合论方法发展起来的,尽管它的基本运算很简单,但是却可以产生复杂的效果。常用的二值图像处理操作有许多方法,如腐蚀、膨胀、细化、开运算和闭运算等等。本文对这些内容作些研究探讨, 希望对爱好图像处理的朋友有所帮助。一、腐蚀和膨胀形态学是一门新兴科学,它的用途主要是获取物体拓扑和结果信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。它在图像处理中的应用主要是: 1.利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的; 2.描述和定义图像的各种几何参数和特征,如面积,周长,连通度,颗粒度,骨架和方向性。限于篇幅,我们只介绍简单二值图像的形态学运算,对于灰度图像的形态学运算,有兴趣的读者可以看有关的参考书。

二值图像基本的形态学运算是腐蚀和膨胀,简单的腐蚀是消除物体的所有边界点的一种过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。如果物体是圆的,它的直径在每次腐蚀后将减少两个像素,如果物体在某一点处任意方向上连通的像素小于三个,那么该物体经过一次腐蚀后将在该点处分裂为二个物体。简单的膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素。如果两个物体在某一点的任意方向相隔少于三个像素,它们将在该点连通起来。 下面给出具体的实现腐蚀和膨胀的函数代码: ////////////////////////////////二值图像腐蚀操作函数 BOOL ImageErosion(BYTE *pData,int Width,int Height) {//pData为图像数据的指针,Width和Height为图像的宽和高; BYTE* pData1; int m,n,i,j,sum,k,sum1;

Matlab画函数图像

用Matlab画函数图像 一、螺旋线 1.静态螺旋线 a=0:0.1:20*pi; h=plot3(a.*cos(a),a.*sin(a),2.*a,'b','linewidth',2); axis([-50,50,-50,50,0,150]); grid on set(h,'erasemode','none','markersize',22); xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('静态螺旋线'); 2.动态螺旋线 t=0:0.1:10*pi; i=1; h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none'); grid on axis([-2 2 -2 2 0 35]) for i=2:length(t)

set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i)); drawnow pause(0.01) end title('动态螺旋线'); (图略) 3.圆柱螺旋线 t=0:0.1:10*pi; x=r.*cos(t); y=r.*sin(t); z=t; plot3(x,y,z,'h','linewidth',2); grid on axis('square') xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('圆柱螺旋线') 二、旋转抛物面

b=0:0.2:2*pi; [X,Y]=meshgrid(-6:0.1:6); Z=(X.^2+Y.^2)./4; meshc(X,Y,Z); axis('square') xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('旋转抛物面') 或直接用:ezsurfc('(X.^2+Y.^2)./4') 三、椭圆柱面 load clown ezsurf('(2*cos(u))','4*sin(u)','v',[0,2*pi,0,2*pi]) view(-105,40) %视角处理 shading interp %灯光处理 colormap(map) %颜色处理 grid on %添加网格线 axis equal %使x,y轴比例一致 xlabel('x轴');ylabel('y轴');zlabel('z轴'); %添加坐标轴说明title('椭圆柱面') %添加标题

用MatLab制作的几个数学函数图像

文字加注: x=-1.5:0.001:1.5; y=(x.^2-1).^3+1; plot(x,y) title('\fontsize{14}\fontname{宋体}函数图像:y=(x^2-1)^3+1') xlabel('\fontsize{14}x'),ylabel('\fontsize{14}y') text(-1,1.1,'\fontsize{8}点(1,1)处倒数为零,但无极值') x=-10:1:10; y=-(x-5).^2+2; [y_max,x_max]=max(y); num2str(y_max); num2str(x_max); plot(x,y) hold on plot(y_max,t_max,'r.') hold off 字符串的应用: a=2; w=3; t=0:0.01:10; y=exp(-a*t).*sin(w*t); [y_max,t_max]=max(y); t_text=['t=',num2str(t (t_max))]; y_text=['y=',num2str(y_max)]; max_text=char('maxinum',t_text,y_text); tit=['字符串的应用:y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)']; hold on plot(t,y,'b') plot(t(t_max),y_max,'r.')%最大值处以红点标示 text(t(t_max)+0.3,y_max+0.05,max_text) title(tit),xlabel('t'),ylabel('y') hold off 求近似极限,修补图形缺口: t=-2*pi:pi/10:2*pi; y=sin(t)./t; tt=t+(t==0)*eps;%逻辑数组参与运算,用“机械零”代替零元素 yy=sin(tt)./tt;%用数值可算的sin(eps)/eps近似替代sin(0)/0 subplot(1,2,1),plot(t,y),title('残缺图形 '),xlabel('t'),ylabel('y'),axis([-7,7,-0.5,1.2]) subplot(1,2,2),plot(tt,yy),title('正确图形 '),xlabel('tt'),ylabel('yy'),axis([-7,7,-0.5,1.2])

腐蚀膨胀算法详细解释

形态学运算中腐蚀,膨胀,开运算和闭运算(针对二值图而言) 6.1 腐蚀 腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。 腐蚀的算法: 用3x3的结构元素,扫描图像的每一个像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为1,结果图像的该像素为1。否则为0。 结果:使二值图像减小一圈 把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的 a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)={a| Ba X}=X B,如图6.8所示。 图6.8 腐蚀的示意图 图6.8中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。 值得注意的是,上面的B是对称的,即B的对称集Bv=B,所以X被B腐蚀的结果和X被Bv腐蚀的结果是一样的。如果B不是对称的,让我们看看图6.9,就会发现X被B腐蚀的结果和X被Bv腐蚀的结果不同。

图6.9 结构元素非对称时,腐蚀的结果不同 图6.8和图6.9都是示意图,让我们来看看实际上是怎样进行腐蚀运算的。 在图6.10中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B,那个标有origin的点是中心点,即当前处理元素的位置,我们在介绍模板操作时也有过类似的概念。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。 图6.10 腐蚀运算 图6.11为原图,图6.12为腐蚀后的结果图,能够很明显地看出腐蚀的效果。 图6.11 原图

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE=strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1=strel('square',6) %创建6*6的正方形 se2=strel('line',10,45) %创建直线长度10,角度45 se3=strel('disk',15) %创建圆盘半径15 se4=strel('ball',15,5) %创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW=roipoly(I,c,r) BW=roipoly(I) BW=roipoly(x,y,I,xi,yi) [BW,xi,yi]=roipoly(...) [x,y,BW,xi,yi]=roipoly(...) BW=roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW=roipoly(I)表示建立交互式的处理界面。 BW=roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I=imread('eight.tif'); c=[222272300270221194]; r=[21217512112175]; BW=roipoly(I,c,r); imshow(I)

Matlab中图像函数大全 2

Matlab中图像函数大全2 matlab 2009-10-26 21:08:13 阅读900 评论0 字号:大中小订阅 边学边和大家交流,我将我在学习中搜集到的资料和大家分享! 图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE = strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1 = strel('square',6) % 创建6*6的正方形 se2 = strel('line',10,45) % 创建直线长度10,角度45 se3 = strel('disk',15) % 创建圆盘半径15 se4 = strel('ball',15,5) % 创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW = roipoly(I,c,r) BW = roipoly(I) BW = roipoly(x,y,I,xi,yi) [BW,xi,yi] = roipoly(...) [x,y,BW,xi,yi] = roipoly(...) BW = roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW = roipoly(I)表示建立交互式的处理界面。 BW = roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I = imread('eight.tif'); c = [222 272 300 270 221 194]; r = [21 21 75 121 121 75]; BW = roipoly(I,c,r); imshow(I) figure, imshow(BW) 图像处理函数详解——roifilt2 功能:用于对一个区域进行滤波。 用法:J = roifilt2(h,I,BW) J = roifilt2(I,BW,fun) J = roifilt2(I,BW,fun,P1,P2,...) J = roifilt2(h,I,BW)表示使用滤波器h对图像I中用二值掩模BW选中的区域滤波。BW为和I大小相同的二值图像。

Matlab中图像函数大全2010(免费版)分析

Matlab中图像函数大全 abs 绝对值、模、字符的ASCII码值acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具all 所有元素非零为真 angle 相角 ans 表达式计算结果的缺省变量名any 所有元素非全零为真 area 面域图 argnames 函数M文件宗量名 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵 axes 创建轴对象的低层指令 axis 控制轴刻度和风格的高层指令 B b bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图 base2dec X进制转换为十进制 bin2dec 二进制转换为十进制 blanks 创建空格串 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令brighten 亮度控制

capture (3版以前)捕获当前图形 cart2pol 直角坐标变为极或柱坐标 cart2sph 直角坐标变为球坐标 cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组 celldisp 显示元胞数组内容 cellplot 元胞数组内部结构图示 char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数 chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解 clabel 等位线标识 cla 清除当前轴 class 获知对象类别或创建对象 clc 清除指令窗 clear 清除内存变量和函数 clf 清除图对象 clock 时钟 colorcube 三浓淡多彩交叉色图矩阵 colordef 设置色彩缺省值 colormap 色图 colspace 列空间的基 close 关闭指定窗口 colperm 列排序置换向量 comet 彗星状轨迹图 comet3 三维彗星轨迹图 compass 射线图 compose 求复合函数 cond (逆)条件数 condeig 计算特征值、特征向量同时给出条件数condest 范-1条件数估计 conj 复数共轭 contour 等位线 contourf 填色等位线

第6章 腐蚀,膨胀,细化算法

第6章腐蚀,膨胀,细化算法 这一章的内容我认为是最有趣的。还记得前言中那个抽取骨架的例子吗?现在我们就来看看它是如何实现的。 今天所讲的内容属于一门新兴的学科:数学形态学(Mathematical Morphology)。说起来很有意思,它是法国和德国的科学家在研究岩石结构时建立的一门学科。形态学的用途主要是获取物体拓扑和结构信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。在图象处理中的应用主要是:(1)利用形态学的基本运算,对图象进行观察和处理,从而达到改善图象质量的目的;(2)描述和定义图象的各种几何参数和特征,如面积、周长、连通度、颗粒度、骨架和方向性等。 限于篇幅,我们只介绍二值图象的形态学运算,对于灰度图象的形态学运算,有兴趣的读者可以阅读有关的参考书。在程序中,为了处理的方便,还是采用256级灰度图,不过只用到了调色板中的0和255两项。 先来定义一些基本符号和关系。 1.元素 设有一幅图象X,若点a在X的区域以内,则称a为X的元素,记作a∈X,如图6.1所示。 2.B包含于X 设有两幅图象B,X。对于B中所有的元素ai,都有ai∈X,则称B包含于(included in)X,记作B X,如图6.2所示。 3.B击中X 设有两幅图象B,X。若存在这样一个点,它即是B的元素,又是X的元素,则称B击中(hit)X,记作B↑X,如图6.3所示。 4.B不击中X 设有两幅图象B,X。若不存在任何一个点,它即是B的元素,又是X的元素,即B和X的交集是空,则称B不击中(miss)X,记作B∩X=Ф;其中∩是集合运算相交的符号,Ф表示空集。如图6.4所示。 图6.1 元素 图6.2 包含

matlab数字图像处理膨胀和腐蚀.doc

基于Matlab的腐蚀和膨胀的边缘检测 一、实验目的: 掌握运用Matlab软件对灰度与二值图像的膨胀与腐蚀的处理方法。 二、实验环境(软件条件): Windws2000/XP MATLAB 7.x 三、实验内容: 1、图像膨胀的Matlab实现 ①实验原理: 膨胀:给图像中的对象边界添加像素。 在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1。 可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate 还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。 ②实验步骤: A、首先创建一个包含矩形对象的二值图像矩阵。 R=zeros(9,10); R(4:6,4:7) =1 R = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B、使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。

Matlab中图像函数大全

图像增强 1. 直方图均衡化的Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X, map) 就算和显示索引色图像X 的直方图,map 为调色板。用stem(x,coun ts) 同样可以显示直方图。 1.2 imcontour 函数 功能:显示图像的等灰度值图 格式:imcontour(I,n),imcontour(I,v) 说明:n 为灰度级的个数,v 是有用户指定所选的等灰度级向量。 1.3 imadjust 函数 功能:通过直方图变换调整对比度 格式:J=imadjust(I,[low high],[bottom top],gamma) newmap=imadjust(map,[low high],[bottom top],gamma) 说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r,[low high] 为原图像中要变换的灰度范围,[bottom top] 指定了变换后的灰度范围;newmap=imadjust(map,[low high],[bottom top],gamm a) 调整索引色图像的调色板map 。此时若[low high] 和[bottom top] 都为2×3的矩阵,则分别调整R、G、B 3个分量。

1.4 histeq 函数 功能:直方图均衡化 格式:J=histeq(I,hgram) J=histeq(I,n) [J,T]=histeq(I,...) newmap=histeq(X,map,hgram) newmap=histeq(X,map) [new,T]=histeq(X,...) 说明:J=histeq(I,hgram) 实现了所谓“直方图规定化”,即将原是图象I 的直方图变换成用户指定的向量hgram 。hgram 中的每一个元素都在[0,1] 中;J=histeq(I,n) 指定均衡化后的灰度级数n ,缺省值为64;[J,T]=histeq(I,...)返回从能将图像I 的灰度直方图变换成图像J 的直方图的变换T ;newma p=histeq(X,map) 和[new,T]=histeq(X,...) 是针对索引色图像调色板的直方图均衡。 2. 噪声及其噪声的Matlab 实现 imnoise 函数 格式:J=imnoise(I,type) J=imnoise(I,type,parameter) 说明:J=imnoise(I,type) 返回对图像I 添加典型噪声后的有噪图像J ,参数type 和parameter 用于确定噪声的类型和相应的参数。 3. 图像滤波的Matlab 实现 3.1 conv2 函数 功能:计算二维卷积

腐蚀、膨胀、开运算、闭运算(特制材料)

1、实验目的 学习常见的数学形态学运算基本方法,了解腐蚀、膨胀、开运算、闭运算取得的效果,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。 2、实验要求 利用MatLab工具箱中关于数学形态学运算的函数,计算本指导书中指定二值图像进行处理。 3、实验设备与软件 1.LC-PC计算机系统 2.MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) 3.实验所需要的图片 4. 4、实验内容与步骤 1.调入并显示图像Plane 2.jpg; 2.选取合适的阈值,得到二值化图像Plane2-2.jpg; 3.设置结构元素; 4.对得到的二值图像Plane2-2.jpg进行腐蚀运算; 5.对得到的二值图像Plane2-2.jpg进行膨胀运算; 6.对得到的二值图像Plane2-2.jpg进行开运算; 7.对得到的二值图像Plane2-2.jpg进行闭运算; 8.将两种处理方法的结果作比较; 5、实验过程及结果 程序代码: I=imread('1.jpg');%读入图像 level = graythresh(I); %得到合适的阈值 bw = im2bw(I,level); %二值化 SE = strel('square',3); %设置膨胀结构元素 BW1 = imdilate(bw,SE); %膨胀

SE1 = strel('arbitrary',eye(5)); %设置腐蚀结构元素BW2 = imerode(bw,SE1); %腐蚀 BW3 = bwmorph(bw, 'open'); %开运算BW4 = bwmorph(bw, 'close'); %闭运算imshow(I) figure,imshow(bw);title('原图'); figure,imshow(BW1);title('膨胀'); figure,imshow(BW2);title('腐蚀'); figure,imshow(BW3);title('开运算'); figure,imshow(BW4);title('闭运算');

matlab 常用函数汇总

matlab 常用函数汇总 编程2008-07-10 21:45:20 阅读46 评论0 字号:大中小订阅matlab常用函数 图形注释 Title 图形标题 Xlabel X轴标记 Ylabel Y轴标记 Text 文本注释 Gtext 用鼠标放置文本 Grid 网格线 MATLAB编程语言 Function 增加新的函数 Eval 执行由MA TLAB表达式构成的字串 Feval 执行由字串指定的函数 Global 定义全局变量 程序控制流 If 条件执行语句 Else 与if命令配合使用 Elseif 与if命令配合使用 End For,while和if语句的结束 For 重复执行指定次数(循环) While 重复执行不定次数(循环) Break 终止循环的执行 Return 返回引用的函数 Error 显示信息并终止函数的执行 交互输入 Input 提示用户输入 Keyboard 像底稿文件一样使用键盘输入 Menu 产生由用户输入选择的菜单 Pause 等待用户响应 Uimenu 建立用户界面菜单 Uicontrol 建立用户界面控制 一般字符串函数 Strings MATLAB中有关字符串函数的说明 Abs 变字符串为数值 Setstr 变数值为字符串 Isstr 当变量为字符串时其值为真 Blanks 空串 Deblank 删除尾部的空串 Str2mat 从各个字符串中形成文本矩阵 Eval 执行由MA TLAB表达式组成的串 字符串比较 Strcmp , , , 比较字符串 Findstr 在一字符串中查找另一个子串

Upper 变字符串为大写 Lower 变字符串为小写 Isletter 当变量为字母时,其值为真 Isspace 当变量为空白字符时,其值为真 字符串与数值之间变换 Num2str 变数值为字符串 Int2str 变整数为字符串 Str2num 变字符串为数值 Sprintf 变数值为格式控制下的字符串 Sscanf 变字符串为格式控制下的数值 十进制与十六进制数之间变换 Hex2num 变十六进制为IEEE标准下的浮点数Hex2dec 变十六制数为十进制数 Dec2hex 变十进制数为十六进制数 建模 Append 追加系统动态特性 Augstate 变量状态作为输出 Blkbuild 从方框图中构造状态空间系统Cloop 系统的闭环 Connect 方框图建模 Conv 两个多项式的卷积 Destim 从增益矩阵中形成离散状态估计器Dreg 从增益矩阵中形成离散控制器和估计器Drmodel 产生随机离散模型 Estim 从增益矩阵中形成连续状态估计器Feedback 反馈系统连接 Ord2 产生二阶系统的A、B、C、D Pade 时延的Pade近似 Parallel 并行系统连接 Reg 从增益矩阵中形成连续控制器和估计器Rmodel 产生随机连续模型 Series 串行系统连接 Ssdelete 从模型中删除输入、输出或状态ssselect 从大系统中选择子系统 模型变换 C2d 变连续系统为离散系统 C2dm 利用指定方法变连续为离散系统 C2dt 带一延时变连续为离散系统 D2c 变离散为连续系统 D2cm 利用指定方法变离散为连续系统 Poly 变根值表示为多项式表示 Residue 部分分式展开 Ss2tf 变状态空间表示为传递函数表示 Ss2zp 变状态空间表示为零极点表示

相关主题
文本预览
相关文档 最新文档