精华内容
下载资源
问答
  • img_gray=imread'rice.png; img_erzhi=imread'testpat1.png; imshow(img_gray) figure,imshow(img_erzhi) [m n]=size(img_gray; img_gray_fu=zeros(m,n; img_gray_peng=zeros(m,n; img_erzhi_fu=zeros(m,n;...
  • 图像处理 膨胀腐蚀 matlab算法实现
  • MATLAB图像腐蚀膨胀

    2013-06-07 12:58:07
    MATLAB代码腐蚀膨胀图像设计,代码很全,步骤很详细
  • 数学形态学具有腐蚀膨胀,开运算和闭运算四种基本运算;...本文以腐蚀膨胀为基础,同时也运用以腐蚀膨胀为基础的其他操作,利用MATLAB图像处理工具箱中的函数对麦积山佛半身图像进行了处理。
  • MATLAB 函数处理图像实现膨胀腐蚀一、实验目的1、了解二值形态学的基本运算2、掌握二值图像膨胀、腐蚀的基本方法3、编程实现膨胀、腐蚀二、实验要求1、使用imdilate 函数进行图像膨胀,并观察膨胀后图像的变化。...

    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 函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,

    展开全文
  • Matlab图像处理知识(四) ? 膨胀 ? 腐蚀 ? 开运算闭运算 ? 击中击不中 ? 结合进行图像预处理 膨胀 ? 原理:膨胀是在图像中“增长”或“变粗”的操作。 ? ...(gray); 上述程序主要是采用了 bwlabel 和 beselect 函数,...

    Matlab图像处理知识(四) ? 膨胀 ? 腐蚀 ? 开运算闭运算 ? 击中击不中 ? 结合进行图像预处理 膨胀 ? 原理:膨胀是在图像中“增长”或“变粗”的操作。 ? ...

    (gray); 上述程序主要是采用了 bwlabel 和 beselect 函数,虽然没有直接使用 Matlab 的形态学操作的膨胀、腐蚀函数,但其实质过程和达到的效果是遵循形 态学操作......

    C=mdilate(A,se) 用结构元素se来膨胀A 相关函数 膨胀 例:将一幅二值图像做膨胀处理。 A=imr Matlab四形态学图像处理 ? se=strel(shape,参数) ? C=m......

    (a,b); ④闭运算:先膨胀后腐蚀称为闭运算,用 imclose 来实现,如:...

    ? 2. 腐蚀和膨胀(Dilation and Erosion) 二值图像 腐蚀 膨胀 (1) 腐蚀一般意义的腐蚀概念定义为: E =B S={x,y| B} ? 如果S的原点位移到点(x,y),......

    MATLAB 程序;程序组中“work”文件夹中应有待处理 的 图像文件; 2 对于飞机图像 a).对图像进行去噪、增强处理; b)运用全局阀值进行二值化; c)用膨胀腐蚀等......

    它具有腐蚀,膨胀,开运算,闭运算四种基本运算。本文主要探讨形态学图像处理的原理及基于MATLAB软件平台的实施方法。研究表明,利用MATLAB图像处理工具箱中的函数运用形态......

    数字图像处理及MATLAB实现 出版社 理工分社 (1)膨胀(扩张)处理 (2)腐蚀(收缩)处理 图7.33 二值图像的膨胀运算示例 31 数字图像处理及MATLAB实现 出版社 理工......

    4. 用MATLAB语言实现运动补偿的去隔行算 法、GAH去隔行算法、 MADM去隔行算法、AMMC 算法、时域反向投影算法和时间递归算法(选择2-3种 方法)。 ...

    实验6 形态学图像处理 一.实验目的: 1.掌握形态学图像处理的基本算法:膨胀、腐蚀。 2.掌握 MATLAB 函数中用于构建结构元的标准函数。 3.掌握开运算、闭运算。 ...

    孟兆新等提出了基于 边缘检测算法的微小疲劳裂纹图像数据的提取方法n,, 其对微小裂纹进行膨胀和腐蚀运算,实现了对微小裂纹 的边缘检测,搜索标记图像中的空穴并逐级......

    ? ? ? 腐蚀 膨胀 开和闭 击中与否变换 8.3.1 腐蚀运算定义: 假定A和B是X2上的两个集合,把A被B腐蚀定义为: ? ? ? ? ? ? ? Matlab实现: I2=......

    Matlab语句如下: bw2=bwmorph(bw1,'remove',Inf); %去除内点, 提 取图像中各区域轮廓 该函数将膨胀和腐蚀运算进行不同的组合, 去掉没 有与背景像素相邻的前......

    上机实习 1,使用Matlab形态学变换函数:imdilate, imerode, strel, immorph, imsubtract, imopen, imclose 2,在二值化程序基础上,编制基本的形态学运算 (腐蚀和......

    (2,2,4);imshow(erodedBW2);title('5*5 腐蚀图像') 实验六 图像处理实际应用一、实验目的 1、熟悉并掌握 MATLAB 图像处理工具箱的使用; 2、理解并掌握常用......

    结构元素的原点指定了图像中需要处理的 像素范围,结构元素中数值为1的点决定结构元素的领域像素在进行膨胀 或腐蚀操作时是否参与计算。 在MATLAB软件中,结构元素定义......

    针对二值图像,Matlab 提供了丰富的数学形态 图像的数学形态学处理。 学运算函数:腐蚀(Erode) 、膨胀(Dilate)算子、以及在此基础上的 开(Open) 、闭(Close)算子......

    针对二值图像, MATLAB 提供了数学形态学运算 函数;腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开 (Open)、闭(Close) 算子、厚化 (Thicken) 、薄化 (......

    MATLAB 图像处理工具箱涵盖了在工程实践中经常遇到的图像处理手段和 算法,如...

    本文用MATLAB的PNN函数 来建立对腐蚀损伤分类的概率神经网络模型。把最大腐 蚀损伤深度作为训练对象,输入和输 出目标矢量都是单行矩阵,这两个矩阵输入到NEWPNN函 ......

    展开全文
  • matlab自实现膨胀腐蚀

    热门讨论 2010-03-18 15:53:13
    自己实现对二值图像膨胀腐蚀,所涉及的函数很容易实现二值图像的开、闭运算。
  • 图像腐蚀图像膨胀Matlab代码

    热门讨论 2008-12-28 22:10:16
    该代码首先实现了图像腐蚀处理和图像膨胀处理。然后,经过先腐蚀(Erosion)处理,后膨胀(Dilation)处理得到了Opening Image;又经过先膨胀(Dilation)处理,后腐蚀(Erosion)处理得到了Closing Image。 程序执行后...
  • 用于图像处理去噪精细,可以利用程序快速处理图像
  • 膨胀腐蚀是数字形态学里两个基本的操作。简单的说,膨胀是把亮的区域变大。腐蚀就是把暗的区域变大。 膨胀函数: B=imdilate(A,zore); A是ru

    膨胀和腐蚀是数字形态学里两个基本的操作。简单的说,膨胀是把亮的区域变大。腐蚀就是把暗的区域变大。

    开运算 (Opening)

    实现:开运算是通过先对图像腐蚀再膨胀实现的。

    作用:1.能够消除小团块物体(比如物体较背景明亮);2.可以消除高于邻近点的孤立点,达到去噪;3.可以平滑物体轮廓、断开较窄的狭颈。

    闭运算 (Closing)

    实现:闭运算是通过先对图像膨胀再腐蚀实现的。

    作用:能够消除小型黑洞(黑色区域),可以消除低于邻近点的孤立点,达到去噪作用,可以平滑物体轮廓、弥合较窄的间断和细长的沟壑,消除小孔洞,填补轮廓线中的断裂。

    膨胀函数:

    B=imdilate(A,zone);

    A是输入的图像,zone是膨胀区域,B是膨胀后的输出。该函数会使zone在A中滑动,再zone区域找找其中的最大值,然后把中心点换成最大值。

    A =

         0     0     0     0     0
         0     1     1     1     0
         0     1     1     1     0
         0     1     1     1     0
         0     0     0     0     0

    zone =

         1     1     1
         1     1     1
         1     1     1

    运行B = imdilate(A,zone),则输出如下:

    B =

         1     1     1     1     1
         1     1     1     1     1
         1     1     1     1     1
         1     1     1     1     1
         1     1     1     1     1

    腐蚀函数

    运行C = imerode(A,zone),则输出如下:

    C =

         0     0     0     0     0
         0     0     0     0     0
         0     0     1     0     0
         0     0     0     0     0
         0     0     0     0     0

    展开全文
  • 腐蚀膨胀的基本原理 1.图像形态学处理的概念 数字图像处理中的形态学处理是指将数字形态学作为工具从图 像中提取对于表达和描绘区域形状有用处的图像分量比如边 界骨架以及凸壳还包括用于预处理或后处理的形态学...
  • matlab膨胀腐蚀的案例详解

    万次阅读 多人点赞 2016-05-18 19:53:51
    Matlab 形态学图像处理(原文作者很是... 形态学是提取图像特征的有力工具,针对二值图像和灰度图像腐蚀膨胀和重构的基本操作可以组合使用,以执行非常宽泛的任务。其练习代码和结果如下:   1 %% 第

    【转载】:http://www.cnblogs.com/tornadomeet/archive/2012/03/20/2408086.html

    Matlab 形态学图像处理(原文作者很是细心,感谢!)

          形态学是提取图像特征的有力工具,针对二值图像和灰度图像的腐蚀、膨胀和重构的基本操作可以组合使用,以执行非常宽泛的任务。其练习代码和结果如下:

     

      1 %% 第9章 形态学处理
      2 
      3 %% imdilate膨胀
      4 clc
      5 clear
      6 
      7 A1=imread('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif');
      8 info=imfinfo('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif')
      9 B=[0 1 0
     10    1 1 1
     11    0 1 0];
     12 A2=imdilate(A1,B);%图像A1被结构元素B膨胀
     13 A3=imdilate(A2,B);
     14 A4=imdilate(A3,B);
     15 
     16 subplot(221),imshow(A1);
     17 title('imdilate膨胀原始图像');
     18 
     19 subplot(222),imshow(A2);
     20 title('使用B后1次膨胀后的图像');
     21 
     22 subplot(223),imshow(A3);
     23 title('使用B后2次膨胀后的图像');
     24 
     25 subplot(224),imshow(A4);
     26 title('使用B后3次膨胀后的图像');
     27%imdilate图像膨胀处理过程运行结果如下:

     28 
     29 %% imerode腐蚀
     30 clc
     31 clear
     32 A1=imread('.\images\dipum_images_ch09\Fig0908(a)(wirebond-mask).tif');
     33 subplot(221),imshow(A1);
     34 title('腐蚀原始图像');
     35 
     36 %strel函数的功能是运用各种形状和大小构造结构元素
     37 se1=strel('disk',5);%这里是创建一个半径为5的平坦型圆盘结构元素
     38 A2=imerode(A1,se1);
     39 subplot(222),imshow(A2);
     40 title('使用结构原始disk(5)腐蚀后的图像');
     41 
     42 se2=strel('disk',10);
     43 A3=imerode(A1,se2);
     44 subplot(223),imshow(A3);
     45 title('使用结构原始disk(10)腐蚀后的图像');
     46 
     47 se3=strel('disk',20);
     48 A4=imerode(A1,se3);
     49 subplot(224),imshow(A4);
     50 title('使用结构原始disk(20)腐蚀后的图像');
     51 %图像腐蚀处理过程运行结果如下:
     52 
     53 %% 开运算和闭运算
     54 clc
     55 clear
     56 f=imread('.\images\dipum_images_ch09\Fig0910(a)(shapes).tif');
     57 %se=strel('square',5');%方型结构元素
     58 se=strel('disk',5');%圆盘型结构元素
     59 imshow(f);%原图像
     60 title('开闭运算原始图像')
     61%运行结果如下:

     62 
     63 %开运算数学上是先腐蚀后膨胀的结果
     64 %开运算的物理结果为完全删除了不能包含结构元素的对象区域,平滑
     65 %了对象的轮廓,断开了狭窄的连接,去掉了细小的突出部分
     66 fo=imopen(f,se);%直接开运算
     67 figure,subplot(221),imshow(fo);
     68 title('直接开运算');
     69 
     70 %闭运算在数学上是先膨胀再腐蚀的结果
     71 %闭运算的物理结果也是会平滑对象的轮廓,但是与开运算不同的是,闭运算
     72 %一般会将狭窄的缺口连接起来形成细长的弯口,并填充比结构元素小的洞
     73 fc=imclose(f,se);%直接闭运算
     74 subplot(222),imshow(fc);
     75 title('直接闭运算');
     76 
     77 foc=imclose(fo,se);%先开后闭运算
     78 subplot(223),imshow(foc);
     79 title('先开后闭运算');
     80 
     81 fco=imopen(fc,se);%先闭后开运算
     82 subplot(224),imshow(fco);
     83 title('先闭后开运算');
     84%开闭运算结果如下:

     85 
     86 %先膨胀再腐蚀
     87 fse=imdilate(f,se);%膨胀
     88 
     89 %gcf为得到当前图像的句柄,当前图像是指例如PLOT,TITLE,SURF等
     90 %get函数为得到物体的属性,get(0,'screensize')为返回所有物体screensize属性值
     91 %set函数为设置物体的属性
     92 figure,set(gcf,'outerposition',get(0,'screensize'));%具体目的是设置当前窗口的大小
     93 subplot(211),imshow(fse);
     94 title('使用disk(5)先膨胀后的图像');
     95 
     96 fes=imerode(fse,se);
     97 subplot(212),imshow(fes);
     98 title('使用disk(5)先膨胀再腐蚀后的图像');
     99%先膨胀后腐蚀图像如下:

    100 
    101 %先腐蚀再膨胀
    102 fse=imerode(f,se);
    103 figure,set(gcf,'outerposition',get(0,'screensize'))
    104 subplot(211),imshow(fse);
    105 title('使用disk(5)先腐蚀后的图像');
    106 
    107 fes=imdilate(fse,se);
    108 subplot(212),imshow(fes);
    109 title('使用disk(5)先腐蚀再膨胀后的图像');
    110%先腐蚀后膨胀的图像如下:

    111 
    112 %% imopen imclose在指纹上的应用
    113 clc
    114 clear
    115 f=imread('.\images\dipum_images_ch09\Fig0911(a)(noisy-fingerprint).tif');
    116 se=strel('square',3);%边长为3的方形结构元素
    117 subplot(121),imshow(f);
    118 title('指纹原始图像');
    119 
    120 A=imerode(f,se);%腐蚀
    121 subplot(122),imshow(A);
    122 title('腐蚀后的指纹原始图像');
    123%指纹原始图像和腐蚀后的图像结果如下:

    124 
    125 fo=imopen(f,se);
    126 figure,subplot(221),imshow(fo);
    127 title('使用square(3)开操作后的图像');
    128 
    129 fc=imclose(f,se);
    130 subplot(222),imshow(fc);
    131 title('使用square闭操作后的图像');
    132 
    133 foc=imclose(fo,se);
    134 subplot(223),imshow(foc);
    135 title('使用square(3)先开后闭操作后的图像')
    136 
    137 fco=imopen(fc,se);
    138 subplot(224),imshow(fco);
    139 title('使用square(3)先闭后开操作后的图像');
    140%指纹图像开闭操作过程结果如下:

    141 
    142 %% bwhitmiss击中或击不中变换
    143 clc
    144 clear
    145 f=imread('.\images\dipum_images_ch09\Fig0913(a)(small-squares).tif');
    146 imshow(f);
    147 title('击中或不击中原始图像');
    148%击中或不击中原始图像显示结果如下:

    149 
    150 B1=strel([0 0 0;0 1 1;0 1 0]);%击中:要求击中所有1的位置
    151 B2=strel([1 1 1;1 0 0;1 0 0]);%击不中,要求击不中所有1的位置
    152 B3=strel([0 1 0;1 1 1;0 1 0]);%击中
    153 B4=strel([1 0 1;0 0 0;0 0 0]);%击不中
    154 B5=strel([0 0 0;0 1 0;0 0 0]);%击中
    155 B6=strel([1 1 1;1 0 0;1 0 0]);%击不中
    156 
    157 g=imerode(f,B1)&imerode(~f,B2)%利用定义来实现击中或击不中
    158 figure,subplot(221),imshow(g);
    159 title('定义实现组1击中击不中图像');
    160 
    161 g1=bwhitmiss(f,B1,B2);
    162 subplot(222),imshow(g1);
    163 title('结构数组1击中击不中后的图像');
    164 
    165 g2=bwhitmiss(f,B3,B4);
    166 subplot(223),imshow(g2);
    167 title('结构数组2击中击不中的图像');
    168 
    169 g3=bwhitmiss(f,B5,B6);
    170 subplot(224),imshow(g3);
    171 title('结构数组3击中击不中的图像');
    172%击中击不中变换后图像如下:

    173 
    174 %%makelut
    175 clc
    176 clear
    177 
    178 f=inline('sum(x(:))>=3');%inline是用来定义局部函数的
    179 lut2=makelut(f,2)%为函数f构造一个接收2*2矩阵的查找表
    180 lut3=makelut(f,3)
    181 
    182 %% Conway生命游戏
    183 clc
    184 clear
    185 lut=makelut(@conwaylaws,3);
    186 bw1=  [0     0     0     0     0     0     0     0     0     0
    187        0     0     0     0     0     0     0     0     0     0
    188        0     0     0     1     0     0     1     0     0     0
    189        0     0     0     1     1     1     1     0     0     0
    190        0     0     1     0     0     0     0     1     0     0
    191        0     0     1     0     1     1     0     1     0     0
    192        0     0     1     0     0     0     0     1     0     0
    193        0     0     0     1     1     1     1     0     0     0
    194        0     0     0     0     0     0     0     0     0     0
    195        0     0     0     0     0     0     0     0     0     0  ];
    196 subplot(221),imshow(bw1,'InitialMagnification','fit');
    197 title('Generation 1');
    198 
    199 bw2=applylut(bw1,lut);
    200 subplot(222),imshow(bw2,'InitialMagnification','fit'),
    201 title('Generation 2');
    202 
    203 bw3=applylut(bw2,lut);
    204 subplot(223),imshow(bw3,'InitialMagnification','fit');
    205 title('Generation 3');
    206 
    207 temp=bw1;
    208 for i=2:100
    209     bw100=applylut(temp,lut);
    210     temp=bw100;
    211 end
    212 subplot(224),imshow(bw100,'InitialMagnification','fit')
    213 title('Generation 100');
    214%显示Generation结果如下:

    215 
    216 %% getsequence
    217 clc
    218 clear
    219 se=strel('diamond',5)
    220 decomp=getsequence(se)%getsequence函数为得到分解的strel序列
    221 decomp(1)
    222 decomp(2)
    223 
    224 %% endpoints
    225 clc
    226 clear
    227 
    228 f1=imread('.\images\dipum_images_ch09\Fig0914(a)(bone-skel).tif');
    229 subplot(121),imshow(f1);
    230 title('原始形态骨架图像');
    231 
    232 g1=endpoints(f1);
    233 %set(gcf,'outerposition',get(0,'screensize'));%运行完后自动生成最大的窗口
    234 subplot(122),imshow(g1);
    235 title('骨架图像的端点图像');
    236 %骨架头像端点检测头像如下:
    237 
    238 f2=imread('.\images\dipum_images_ch09\Fig0916(a)(bone).tif');
    239 figure,subplot(121),imshow(f2);
    240 title('原始骨头图像');
    241 
    242 g2=endpoints(f2);
    243 subplot(122),imshow(g2);
    244 title('骨头图像端点头像');%结果是没有端点
    245%骨头头像端点检测图像如下:

    246 
    247 %% bwmorph组合常见形态学之细化
    248 clc
    249 clear
    250 f=imread('.\images\dipum_images_ch09\Fig0911(a)(noisy-fingerprint).tif');
    251 subplot(221),imshow(f);
    252 title('指纹图像细化原图');
    253 
    254 g1=bwmorph(f,'thin',1);
    255 subplot(222),imshow(g1);
    256 title('指纹图像细化原图');
    257 
    258 g2=bwmorph(f,'thin',2);
    259 subplot(223),imshow(g2);
    260 title('指纹图像细化原图');
    261 
    262 g3=bwmorph(f,'thin',Inf);
    263 subplot(224),imshow(g3);
    264 title('指纹图像细化原图');
    265%指纹图像细化过程显示如下:

    266 
    267 %% bwmorph组合常见形态学之骨骼化
    268 clc
    269 clear
    270 f=imread('.\images\dipum_images_ch09\Fig0911(a)(noisy-fingerprint).tif');
    271 subplot(131),imshow(f);
    272 title('指纹图像骨骼化原图');
    273 
    274 fs=bwmorph(f,'skel',Inf);
    275 subplot(132),imshow(fs);
    276 title('指纹图像骨骼化');
    277 
    278 for k=1:5
    279     fs=fs&~endpoints(fs);
    280 end
    281 subplot(133),imshow(fs);
    282 title('指纹图像修剪后骨骼话');
    283%指纹图像骨骼化过程显示:

    284 
    285 %% 使用函数bwlabel标注连通分量
    286 clc
    287 clear
    288 f=imread('.\images\dipum_images_ch09\Fig0917(a)(ten-objects).tif');
    289 imshow(f),title('标注连通分量原始图像');
    290%其结果显示如下:

    291 
    292 [L,n]=bwlabel(f);%L为标记矩阵,n为找到连接分量的总数
    293 [r,c]=find(L==3);%返回第3个对象所有像素的行索引和列索引
    294 
    295 rbar=mean(r);
    296 cbar=mean(c);
    297 
    298 figure,imshow(f)
    299 hold on%保持当前图像使其不被刷新
    300 for k=1:n
    301     [r,c]=find(L==k);
    302     rbar=mean(r);
    303     cbar=mean(c);
    304     plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k',...
    305          'MarkerFaceColor','k','MarkerSize',10);%这个plot函数用法不是很熟悉
    306     plot(cbar,rbar,'Marker','*','MarkerFaceColor','w');%其中的marker为标记
    307 end
    308 title('标记所有对象质心后的图像');

    309 
    310 %% 由重构做开运算
    311 clc
    312 clear
    313 f=imread('.\images\dipum_images_ch09\Fig0922(a)(book-text).tif');
    314 subplot(321),imshow(f);
    315 title('重构原始图像');
    316 
    317 fe=imerode(f,ones(51,1));%竖线腐蚀
    318 subplot(322),imshow(fe);
    319 title('使用竖线腐蚀后的结果');
    320 
    321 fo=imopen(f,ones(51,1));%竖线做开运算
    322 subplot(323),imshow(fo);
    323 title('使用竖线做开运算结果');
    324 
    325 fobr=imreconstruct(fe,f);%fe做标记
    326 subplot(324),imshow(fobr);
    327 title('使用竖线做重构开运算');
    328 
    329 ff=imfill(f,'holes');%对f进行孔洞填充
    330 subplot(325),imshow(ff);
    331 title('对f填充孔洞后的图像');
    332 
    333 fc=imclearborder(f,8);%清除边界,2维8邻接
    334 subplot(326),imshow(fc);
    335 title('对f清除边界后的图像');
    336%图像重构过程显示如下:

    337 
    338 %% 使用顶帽变换和底帽变换
    339 clc
    340 clear
    341 f=imread('.\images\dipum_images_ch09\Fig0926(a)(rice).tif');
    342 subplot(221),imshow(f);
    343 title('顶帽底帽变换原始图像');
    344 
    345 se=strel('disk',10);%产生结构元素
    346 %顶帽变换是指原始图像减去其开运算的图像
    347 %而开运算可用于补偿不均匀的背景亮度,所以用一个大的结构元素做开运算后
    348 %然后用原图像减去这个开运算,就得到了背景均衡的图像,这也叫做是图像的顶帽运算
    349 f1=imtophat(f,se);%使用顶帽变换
    350 subplot(222),imshow(f1);
    351 title('使用顶帽变换后的图像');
    352 
    353 %底帽变换是原始图像减去其闭运算后的图像
    354 f2=imbothat(imcomplement(f),se);%使用底帽变换,为什么原图像要求补呢?
    355 %f2=imbothat(f,se);%使用底帽变换
    356 subplot(223),imshow(f2);
    357 title('使用底帽变换后的图像');
    358 
    359 %顶帽变换和底帽变换联合起来用,用于增加对比度
    360 f3=imsubtract(imadd(f,imtophat(f,se)),imbothat(f,se));%里面参数好像不合理?
    361 subplot(224),imshow(f3);
    362 title('使用顶帽底帽联合变换后图像');
    363%顶帽底帽变换过程图像如下:

    364 
    365 %%使用开运算和闭运算做形态学平滑
    366 %由于开运算可以除去比结构元素更小的明亮细节,闭运算可以除去比结构元素更小的暗色细节
    367 %所以它们经常组合起来一起进行平滑图像并去除噪声
    368 clc
    369 clear
    370 f=imread('.\images\dipum_images_ch09\Fig0925(a)(dowels).tif');
    371 subplot(221),imshow(f);
    372 title('木钉图像原图');
    373 
    374 se=strel('disk',5);%disk其实就是一个八边形
    375 fo=imopen(f,se);%经过开运算
    376 subplot(222),imshow(f);
    377 title('使用半径5的disk开运算后的图像');
    378 
    379 foc=imclose(fo,se);
    380 subplot(223),imshow(foc);
    381 title('先开后闭的图像');
    382 
    383 fasf=f;
    384 for i=2:5
    385     se=strel('disk',i);
    386     fasf=imclose(imopen(fasf,se),se);
    387 end
    388 subplot(224),imshow(fasf);
    389 title('使用开闭交替滤波后图像');
    390%使用开运算和闭运算做形态学平滑结果如下:

    391 
    392 %% 颗粒分析
    393 clc
    394 clear
    395 f=imread('.\images\dipum_images_ch09\Fig0925(a)(dowels).tif');
    396 
    397 sumpixels=zeros(1,36);
    398 for k=0:35
    399     se=strel('disk',k);
    400     fo=imopen(f,se);
    401     sumpixels(k+1)=sum(fo(:));
    402 end
    403 
    404 %可以看到,连续开运算之间的表面积会减少
    405 plot(0:35,sumpixels),xlabel('k'),ylabel('surface area');
    406 title('表面积和结构元素半径之间的关系');
    407%其运算结果如下:   

    408 
    409 figure,plot(-diff(sumpixels));%diff()函数为差分或者近似倒数,即相邻2个之间的差值
    410 xlabel('k'),ylabel('surface area reduction');
    411 title('减少的表面积和结构元素半径之间的关系');
    412%其运算结果如下:

    413 
    414 %% 使用重构删除复杂图像的背景
    415 clc
    416 clear
    417 f=imread('.\images\dipum_images_ch09\Fig0930(a)(calculator).tif');
    418 subplot(221),imshow(f);
    419 title('灰度级重构原图像');
    420 
    421 f_obr=imreconstruct(imerode(f,ones(1,71)),f);
    422 subplot(222),imshow(f_obr);
    423 title('经开运算重构图');
    424 
    425 f_o=imopen(f,ones(1,71));
    426 subplot(223),imshow(f_o);
    427 title('经开运算后图');
    428 
    429 f_thr=imsubtract(f,f_obr);
    430 subplot(224),imshow(f_thr);
    431 title('顶帽运算重构图')
    432%使用重构删除复杂图像的背景1:

    433 
    434 f_th=imsubtract(f,f_o)
    435 figure,subplot(221),imshow(f_th);
    436 title('经顶帽运算图');
    437 
    438 g_obr=imreconstruct(imerode(f_thr,ones(1,11)),f_thr);
    439 subplot(222),imshow(g_obr);
    440 title('用水平线对f_thr经开运算后重构图');
    441 
    442 g_obrd=imdilate(g_obr,ones(1,2));
    443 subplot(223),imshow(g_obrd);
    444 title('使用水平线对上图进行膨胀');
    445 
    446 f2=imreconstruct(min(g_obrd,f_thr),f_thr);
    447 subplot(224),imshow(f2);
    448 title('最后的重构结果');
    449%使用重构删除复杂图像的背景2:

     

        形态学这一章很有用,因为它还可以应用在图像分割中。

     

     

    展开全文
  • 关于图像分割和hough变换(19_01_23学习进度)图像形态处理(文字区域识别)数学形态学是一种应用于图像处理和模式识别的方法,基本思想是用具有一定形态的结构元素去度量和提取图像中对应的形状以达到对图像分析和识别...
  • 图像处理matlab腐蚀膨胀

    热门讨论 2009-04-03 11:51:43
    不是直接的函数调用,老师不让直接调用是根据腐蚀膨胀的原理自己编的小程序.
  • matlab 图像膨胀indilate和腐蚀imerode

    万次阅读 多人点赞 2014-11-04 10:51:14
    1.图像膨胀Matlab实现: 可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构...
  • 是个GUI界面。进行了中值滤波,范围默认为3*3,...利用类间方差阈值算法实现图像的分割处理,利用形态学中的腐蚀膨胀处理进行处理结果修正。注意,本程序用的滤波、分割、形态学处理等都是调用的matlab自带的函数。
  • 基于 Matlab腐蚀膨胀的边缘检测 一实验目的 : 掌握运用 Matlab 软件对灰度与二值图像膨胀腐蚀的处理方法 二实验环境(软件条件) Windws2000/XP MATLAB 7.x 三实验内容 1图像膨胀Matlab 实现 实验原理 ...
  • 1.图像膨胀Matlab实现:可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素...
  • Matlab基于腐蚀膨胀的边缘检测文/天神一.课题背景:形态学运算只针对二值图像(二进制图像),并依据数学形态学(MathermaticalMorphogy)集合论方法发展起来的图像处理方法,起源于岩相对岩石结构的定量描述工作,在...
  • matlab中通过腐蚀膨胀提取物体边缘,可直接下载使用。
  • 用于图像处理的Matlab腐蚀膨胀的边缘检测方法
  • 1.膨胀 strel函数是创造一个形态学结构元素,常见的二维形态学结构元素如图所示,也可以自己设计。 膨胀填充了图像小孔 2.腐蚀 y = imerode(x,strel) 用法与膨胀相同 ...
  • matlab图像处理--膨胀腐蚀2

    千次阅读 2020-04-19 21:53:31
    参考前一篇:matlab图像处理--膨胀腐蚀 https://mp.csdn.net/console/editor/html/105622640 左边是一个二值化的测试图像,白色为图像元素,黑色为背景;右边是经过腐蚀后的结果图像 下面是测试用的matlab...
  • 本篇文章要分享的是基于MATLAB腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作。 什么是二值图像呢?把...
  • 【转载】:Matlab 图像处理 形态学 腐蚀 膨胀 开闭运算 连通分量 - yangyangyang20092010的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/yangyangyang20092010/article/details/8289572  形态学是提取...
  • Matlab 基于腐蚀膨胀的边缘检测 文/天神 一.课题背景 形态学运算只针对二值图像二进制图像并依据数学形态学Mathermatical Morphogy集合论方法发展起来 的图像处理方法起源于岩相对岩石结构的定量描述工作在数字...
  • 本文给大家分享了一个腐蚀膨胀matlab实现的源代码。
  • matlab与数字图像处理--膨胀腐蚀

    千次阅读 2020-04-19 21:33:52
    左边是一个二值化的测试图像,白色为图像元素,黑色为背景;右边是经过膨胀后的结果图像 下面是测试用的matlab代码,代码中...%手动实现膨胀腐蚀 img=imread('ces2.bmp'); %关于img:img图像中进行了二值化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,501
精华内容 600
关键字:

matlab图像膨胀腐蚀

matlab 订阅