文章目录

  • 一、实验目的
  • 二、实验仪器
  • 三、实验原理
    • 1. 结构元素:
    • 2. 腐蚀运算:
    • 3. 膨胀运算:
    • 4. 开运算:
    • 5. 闭运算:
  • 四、实验内容:
    • 1. 形态学图像处理用于图像边界提取
    • 2.数学形态学用于图像的噪点去除
      • (1) 从腐蚀和膨胀的原理解释为什么可以去除黑白噪点。
      • (2) 对处理后的四幅图像进行对比,对四种运算的功能分别进行总结说明,尝试解释腐蚀和开运算处理效果的不同、膨胀和闭运算处理效果的不同分别是如何造成的。
  • 五、撰写实验报告
  • 六、结论
  • 七、实验代码
  • 八、实验截图
  • 九、项目-----汉字视力表
  • 十、总结

一、实验目的

1 了解数学形态学的基本思想和方法;
2 掌握形态学基本运算
3 通过对图像的腐蚀和膨胀效果加深理解两种形态学处理方法的功能及应用。

二、实验仪器

安装有MATLAB软件的计算机

三、实验原理

数学形态学是根据形态学概念发展而来具有严格数学理论基础的科学。最基本的形态学运算有:膨胀、腐蚀、开、闭。

1. 结构元素:

指有一定形状的比较小的图像块。在二值形态学中,其像素值为1,且要指定坐标原点。
生成函数:se=strel(shape, parameter)
SE = strel(‘arbitrary’,NHOOD)
SE = strel(‘ball’,R,H) 椭球型
SE = strel(‘diamond’,R) 菱形(钻石型)
SE = strel(‘disk’,R) 圆形
SE = strel(‘line’,LEN,DEG) 线型
SE = strel(‘octagon’,R) 八边形
SE = strel(‘rectangle’,[M N]) 矩形
SE = strel(‘square’,W) 方型
常用举例:
se_disk =strel(‘disk’,5,4) ; %创建一个指定半径5的平面圆盘形的结构元素。这里R必须是非负整数。
se_diamond =strel(‘diamond’,4); % 创建一个菱形的结构元素,4是从结构化元素原点到四个顶点的距离,必须为非负整数。
se_octagon=strel(‘octagon’,3); % 创建一个八边形的结构元素,参数为3的倍数
se=strel(‘rectangle’,[2 5]); % 创建一个25的矩形结构元素
se1 =strel(‘square’,11); % 创建一个长度为11
11的方形结构元素
se_line =strel(‘line’,6,45) ; % 为构造的线性结构元素,6为长度(size),45为角度
SE =strel(‘ball’,R,H,N); % 创建一个空间椭球状的结构元素,其X-Y平面半径为R,高度为H。R必须为非负整数,H是一个实数。N必须为一个非负偶数,当N>0时此球形结构元素由一系列空间线段结构元素来近似;当N=0时不需要近似,结构化元素的成员由所有中心距圆点>R的元素组成,相应的高度值可由R/H指定的椭球中提取。如果N未指定,缺省值8。
SE =strel(‘arbitrary’,NHOOD) :
创建一个指定领域的平面结构化元素。NHOOD是一个包含1/0的矩阵;1的位置定义了领域的形态学操作。NHOOD的中心就是它的中心元素,位置在FLOOR((SIZE(NHOOD) + 1)/2)。你也可以忽略参数串’arbitrary’而只使用strel(NHOOD)。
例如:nhood=[1 0;1 1]; A=strel(nhood);

2. 腐蚀运算:

设A为原图像,B为结构元素,则原图像A被结构元素B腐蚀可定义为:

腐蚀运算的结果不仅与结构元素的形状(矩形、圆形、菱形等)选取有关,而且还与原点位置的选取有关。
函数:A2=imerode(A, B)
说明:B是结构元(由0和1组成的矩阵)。

3. 膨胀运算:

设A为原图像,B为结构元素,则原图像A被结构元素B膨胀可定义为:

当原图像不变,但所给的结构元素的形状改变时;或结构元素的形状不变,而其原点位置改变时,膨胀运算的结果会发生改变。
函数:A2=imdilate(A, B)
说明:B是结构元(由0和1组成的矩阵)。
腐蚀和膨胀的对偶性:
对目标图像的膨胀运算,相当于对图像背景的腐蚀运算操作;对目标图像的腐蚀运算,相当于对图像背景的膨胀运算操作。

4. 开运算:

使用同一个结构元素对目标图像先进行腐蚀运算,然后再进行膨胀运算称为开运算。
结构元素B对目标图像A的开运算定义为:

函数:C = imopen(A, B);

5. 闭运算:

使用同一个结构元素对目标图像先进行膨胀运算,然后再进行腐蚀运算称为闭运算。
结构元素B对目标图像A的闭运算定义为:

函数:C = imclose(A,B)

四、实验内容:

1. 形态学图像处理用于图像边界提取

测试图像:circles.png
读取文件‘circles.png’,分别用半径为1和半径为4的圆盘形状的结构元素对其进行腐蚀和膨胀运算,然后用膨胀图像减去腐蚀图像,得到新图像。编写程序并运行。
问题:观察、对比两个半径的运行效果图,总结“膨胀图像减去腐蚀图像”的功能,并解释半径为1和半径为4处理的最终图像效果有何不同,尝试解释其原因。
半径为4的图像边界比半径为1的图像边界要粗一些。原因:当半径为1的进行处理时,白色的膨胀范围较小,并且白色的腐蚀程度也较小,因此,两者相减得到的结果的白色边界不会差距太大。而半径为4的膨胀范围较大,腐蚀程度也较大,因此两者相减之后,白色边界会很粗。

2.数学形态学用于图像的噪点去除

测试图像:saturn.png
对‘satrun.png’图像加入椒盐噪声(imnoise函数),分别用腐蚀、膨胀、开运算、闭运算对其进行处理并显示处理后图像。编写程序并运行。
问题:

(1) 从腐蚀和膨胀的原理解释为什么可以去除黑白噪点。

腐蚀是对1的数量减少,而1在二值图中呈现白色,因此腐蚀后,球外的白点都去了,但是星球上的点反而更加密集,而膨胀是把1的数量变多,因此膨胀后球外点变多,而球内点变少。

(2) 对处理后的四幅图像进行对比,对四种运算的功能分别进行总结说明,尝试解释腐蚀和开运算处理效果的不同、膨胀和闭运算处理效果的不同分别是如何造成的。

膨胀,1的数量变多;腐蚀1的数量变少;开运算1的数量先减少再变多;闭运算1的的数量先减少再变多。开运算比腐蚀多一个膨胀步骤,因此将那些腐蚀后将残留的1进行膨胀,从而白点变多,白色范围加大。闭运算比膨胀多一个腐蚀步骤,因此将那些膨胀后将多余的1进行腐蚀,从而白点变少,白色范围缩小。

五、撰写实验报告

对每个实验内容获得相应的实验结果并给出相应分析和评价。

六、结论

可以是对某些MATLAB函数如何使用的认识,也可以是实验中遇到的问题的分析和总结。

七、实验代码

%%
I = imread('circles.png');
I = im2double(I);
thresh = graythresh(I);
I2 = im2bw(I,thresh);%生成1和4为半径的圆盘结构
SE_1 = strel('disk',1);
SE_4 = strel('disk',4);% 腐蚀与膨胀
E_1 = imerode(I2,SE_1);
E_4 = imerode(I2,SE_4);
D_1 = imdilate(I2,SE_1);
D_4 = imdilate(I2,SE_4);% 膨胀 - 腐蚀
A_1 = D_1 - E_1;
A_4 = D_4 - E_4;subplot(131);imshow(I2);title('原二值图');
subplot(132);imshow(A_1);title('半径为1');
subplot(133);imshow(A_4);title('半径为4');%%
I = imread('saturn.png');
I = im2double(I);
thresh = graythresh(I);
I2 = im2bw(I,thresh);
I2 = im2double(I2);
S = imnoise(I2,'salt & pepper',0.005);% 腐蚀、膨胀、开运算、闭运算
SE_4 = strel('disk',4);
E = imerode(S,SE_4);
D = imdilate(S,SE_4);
O = imopen(S,SE_4);
C = imclose(S,SE_4);subplot(131);imshow(S);title('原图像');
subplot(243);imshow(E);title('腐蚀');
subplot(244);imshow(D);title('膨胀');
subplot(247);imshow(O);title('开运算');
subplot(248);imshow(C);title('闭运算');

八、实验截图

九、项目-----汉字视力表

本项目是大一参加数学建模时,在暑假集训时候写的。
内容介绍,给你汉字库,进行汉字相似度的匹配,比如在一堆里面找一个
该项目我上传到github上了,需要的自取
链接:汉字视力表

十、总结

对于大三上的一个数字图像处理的实验我也就到这里结束了,在这里非常感谢张艳华张老师的教导,让我受益匪浅,其实本人对于数字图像处理时自从
大一吧,首先通过数模集训让我对matlab的掌握有了一个熟练的掌握,之后就是大一暑假集训时做过的这个项目让我对用matlab作图像处理有了一个更加深刻更加形象的认识。再之后就是陈奎陈老师,一直是喜欢用labview作图像处理方面,让我对图像处理也有一个理解,再到后来就是大三上的这门数字图像处理的这门课程,让我系统的入门了图像处理。
老师教的很好,也为我解答很清晰的数字图像处理的相关知识,比如什么振铃现象,等等诸如此来,不厌其烦的教导我,所以很感谢。
在此帖出来,望各位读者能从中有所收益

MATLAB 之 App designer

数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)相关推荐

  1. 【数字图像处理】实验五 形态学图像处理

    实验五 形态学图像处理 1 实验目的 2 实验环境 3 实验内容 4 实验心得 1 实验目的 1.了解形态学的基本理论和方法. 2.掌握对图像进行膨胀.腐蚀的方法. 3.掌握开闭运算. 2 实验环境 ...

  2. MATLAB【数字图像处理】 实验五:形态学图像处理

    目录 一.实验目的 二.实验环境 三.实验内容 题目 相关知识 核心代码 实验结果 四.实验小结 一.实验目的 1.了解形态学的基本理论和方法. 2.掌握对图像进行开.闭.膨胀.腐蚀的方法. 二.实验 ...

  3. 数字图像处理——第九章 形态学图像处理

    数字图像处理--第9章 形态学图像处理 文章目录 数字图像处理--第9章 形态学图像处理 1 基础知识 1.1 形态学图像 1.2 二值图像 2 腐蚀和膨胀 2.1 腐蚀 2.2 膨胀 3 开操作与闭 ...

  4. 数字图像处理第九章——形态学图像处理

    数字图像处理第九章 数字图像处理---形态学图像处理 (一)预备知识 1.1 集合理论中的基本概念 1.2 二值图像.集合及逻辑算子 (二)膨胀和腐蚀 2.1 膨胀 2.2 结构元的分解 2.3 st ...

  5. 图像处理形态学椭圆形模板结构元素的设计与实现

    在图像处理中,经常要用到形态学操作,形态学操作中的结构元素有很多,如点结构 十字架结构 圆结构 矩形结构 椭圆形结构等等 本文将介绍椭圆形结构的实现.(主要结合OpenCV实现) 具体如下: #inc ...

  6. 数字图像处理第九章----形态学图像处理

    文章目录 1.概念 2.腐蚀与膨胀 3.开闭运算 4.顶帽与黑帽运算 5.边界提取与区域填充 6.细化 7.总结 1.概念 形态学操作:数学形态学时基于集合论的图像处理方法,最早出现在生物学的形态与结 ...

  7. [数图] 实验八 形态学图像处理

    一.实验目的 1.利用 MATLAB 研究二值形态学图像处理常用算法: 2.掌握 MATLAB 形态学图像处理基本操作函数的使用方法: 3.了解形态学的基本应用. 二.实验内容 1.编程实现二值图像的 ...

  8. 数字图像处理第九章 形态学图像处理

    形态学图像处理 1 预备知识 1.1 集合理论中的基本概念 1.2 二值图像.集合及逻辑算子 2 膨胀和腐蚀 2.1 膨胀 2.2 腐蚀 3 膨胀与腐蚀的结合 3.1 开操作和闭操作 3.2 击中或击 ...

  9. fread读结构体返回值是0无错误_嵌入式C编程之错误处理(附代码例子)!

    原标题:嵌入式C编程之错误处理(附代码例子)! 作者: clover-toeic 前言 本文主要总结嵌入式系统C语言编程中,主要的错误处理方式.文中涉及的代码运行环境如下: 一.错误概念 错误分类 从 ...

最新文章

  1. Oracle RAC环境下如何更新patch(Rolling Patch)
  2. 设计模式解析学习(一)
  3. 谷歌OKR指导手册 (译)
  4. javascript js jquery获取元素位置代码总结
  5. Python+Opencv实现模板匹配
  6. android方向触摸事件,Android触摸事件传递机制,这一篇就够了
  7. exchange2003 SMTP连接器的应用案例
  8. 转换php时间戳,如何实现转换php时间戳
  9. 安川焊接机器人做圆弧运动编程_安川机器人示教器编程插补方式详细介绍--安川机器人...
  10. vb mysql 教程_[转载]VB.net教程之数据库简单操作
  11. Web前端——CSS基础样式
  12. sqlldr mysql_Oracle中的SQLLDR工具使用
  13. hitb2017 sentosa writeup
  14. 3d max材质贴图
  15. Codeforces--884A--Book Reading
  16. Qt实用技巧:使用Qt加载超大图片的耗时测试
  17. print中sep,end
  18. DTS北洋曳舞社网站开发手记
  19. Spring AOP切面
  20. 比上清华更难的,是加入这支中国顶级黑客战队

热门文章

  1. 量子计算的基本概念:量子位、量子纠缠、量子比特、量子算法
  2. 23web app实现上下左右滑动
  3. 磨金石教育摄影技能干货分享|什么是序列摄影?它让摄影更加深刻
  4. 家用电脑设置成小程序服务器,电脑微信小程序设置全屏的方法是什么
  5. 2022Java面试笔记(上)
  6. 网易云课堂Web安全工程师课程分享——第二章 Web开发基础知识
  7. C++基础知识(上)
  8. android 下 ftp 客户端软件编写(ftp4j)
  9. 数十亿红包,正谋杀我们的春节
  10. python中for循环缩进_跟小白学Python数据分析——For循环