大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。
如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!!
Good better best, never let it rest, until good is better, and better best.

近期会把自己本科阶段的一些课程设计、实验报告等分享出来,供大家参考,希望对大家有帮助。

博客更新至专栏【课程设计实验报告】:https://blog.csdn.net/weixin_43598687/category_11640051.html

一、 实验目的

分析掌握腐蚀与膨胀的基本原理,编写腐蚀与膨胀的算法,并掌握开闭运算的规则。

二、 实验内容

1. 实验任务

运用实验框架,正确编写图像腐蚀与膨胀的算法,并运用图像的开闭运算,实现图像的去“渣渣”与填“洞洞”。

2. 程序设计

1) 原理
①膨胀定义:把结构元素B平移a后得到Ba,若Ba击中X,则记下这个a点。所有满足上诉条件的a点组成的集合称为X被B膨胀的结果。膨胀处理的结果是使原来的图像增大一圈;
②腐蚀定义:把结构元素B平移a后得到Ba,若Ba包含于X,则记下这个a点。所有满足上诉条件的a点组成的集合称为X被B腐蚀的结果。腐蚀处理的结果是使原来的图像减小一圈。因为膨胀是腐蚀的对偶运算,所以在本实验中腐蚀运用的原理为:对白色膨胀就是对黑色腐蚀;
③开运算:先腐蚀后膨胀称为开运算,它用来消除小物体,在纤细点处分离物体,平滑较大物体的边界的同时,并不明显改变其面积;
④闭运算:先膨胀后腐蚀的过程称为闭运算,它用来填充物体内的细小空洞,连接邻近物体,平滑其边界的同时,并不明显改变其面积。

2) 流程
①打开VC++,打开工作空间,在DIB类中操作,只操作灰度图像;
②在DilationDIB函数的相应位置添加膨胀操作的代码。
③在ErosionDIB函数的相应位置添加腐蚀操作的代码。
④点击BuildExecute按钮,打开待操作的灰度图像。
⑤在形态学变换中分别进行膨胀和腐蚀,开运算和闭运算的操作。

3) 数据输出


结论:
腐蚀操作可以抹掉图像周围的小渣滓,膨胀操作可以填补图像中间的空洞,而开操作与闭操作结合使用可以实现图像的去“渣渣”与填“洞洞”。

三、 实验环境

  1. 操作系统:WINDOWS 8
  2. 开发工具:Visual Studio、
  3. 实验设备:PC

源代码

膨胀算法:

int flag = 0;for(j=1;j<lHeight-1;j++){for(i=1;i<lWidth-1;i++){lpSrc=(char*)lpDIBBits+lWidth*j+i;lpDst=(char*)lpNewDIBBits+lWidth*j+i;pixel=(unsigned char)*lpSrc;*lpDst=(unsigned char)255;flag=0;for(int m=0;m<3;m++){for(n=0;n<3;n++){pixel=*(lpSrc+(m-1)*lWidth+n-1);if(pixel==0){*lpDst=(unsigned char)0;flag=1;}if(flag==1)break;}}}}

腐蚀算法:

int flag = 0;for(j=0;j<lHeight-1;j++){for(i=1;i<lWidth-1;i++){lpSrc=(char*)lpDIBBits+lWidth*j+i;lpDst=(char*)lpNewDIBBits+lWidth*j+i;pixel=(unsigned char)*lpSrc;*lpDst=(unsigned char)0;flag=0;for(int m=0;m<3;m++){for(n=0;n<3;n++){pixel=*(lpSrc+(m-1)*lWidth+n-1);if(pixel==255){*lpDst=(unsigned char)255;flag=1;}if(flag==1)break;}}}}

博客更新至专栏【课程设计实验报告】:https://blog.csdn.net/weixin_43598687/category_11640051.html

本科课程【数字图像处理】实验1 - 腐蚀与膨胀相关推荐

  1. 数字图像处理---通俗理解腐蚀与膨胀

    本人已经打算将这一系列博文做成动画趣味科普的形式来呈现,感兴趣的话可以点这里. 0.腐蚀与膨胀有什么卵用? 腐蚀与膨胀是数字形态学里的两个基本操作,一般用于二值图像(当然RGB图也可以用).腐蚀的作用 ...

  2. matlab图像处理基础实验,数字图像处理实验报告 Matlab图像处理基础

    <数字图像处理实验报告 Matlab图像处理基础>由会员分享,可在线阅读,更多相关<数字图像处理实验报告 Matlab图像处理基础(27页珍藏版)>请在人人文库网上搜索. 1. ...

  3. 数字图像处理实验(总计23个)汇总

    以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...

  4. 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理

    数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...

  5. 数字图像处理实验——Python语言实现

    数字图像处理实验--Python语言实现 实验一:数字图像处理入门 实验二:直方图均衡 实验三:线性平滑和锐化--掩模法 实验四:非线性平滑--中值滤波 实验五:非线性锐化--梯度法 GitHub地址 ...

  6. 数字图像处理实验三图像增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法. (2)熟练掌握直方图均衡化和直方图规定化的计算过 程. (3)熟练掌握空域滤波中常 ...

  7. 数字图像处理实验四图像频域增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...

  8. 数字图像处理实验5图像复原

    一.实验目的 (1)了解图像复原的目的及意义,加深对图像复原理论的认识. (2)掌握维纳滤波复原基本原理. (3)掌握约束最小二乘方复原方法. (4)掌握盲解卷积复原方法 二.实验内容  (1)维纳滤 ...

  9. 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...

    <数字图像处理(实验部分)>教案 实验一:数字图像处理中MATLAB使用基础实验 一. MATLAB软件安装 二. 进入MATLAB运行环境 三. MATLAB编程基础 3.1.变量 预定 ...

  10. matlab数字图像实验报告,数字图像处理实验报告(matlab)

    数字图像处理实验报告(matlab) 学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099 2011年10月 实验一 直方图均衡化 一. 实验目的: 1. 熟悉图像数据在计算机中的 ...

最新文章

  1. jsp中九大内置对象
  2. Swift 1.1语言第7章 函数和闭包
  3. Vue实现仿音乐播放器6-实现新歌速递与swiper轮播图切换
  4. 神策分析 1.16 版本上线场景库,实操方法论融入产品,全方位赋能多角色应用...
  5. 全国计算机二级考试c语言指针,全国计算机二级考试C语言 指针精讲课件.ppt
  6. boost::graph模块实现Graphviz DOT 语言阅读器
  7. Eclipse Maven 编译错误 Dynamic Web Module 3.0 requires Java 1.6 or newer 解决方法
  8. Python中const类的实现
  9. python中的常量_深入理解Python中的内置常量
  10. 算法笔记2-优先队列(堆)(上)
  11. 啦啦外卖独立版41.4+全插件+可运营版本+开源(亲测100%可用)
  12. PYTHON网络爬虫大数据朱炯明
  13. 最新大数据产业生态地图:十大爆发点,百大公司起底
  14. Visual Studio 2013安装使用方法
  15. python从视频中提取音频信号_通过python从音频文件中提取音频
  16. ubuntu16.04不能访问新加卷
  17. 新服务挂载1T硬盘进行逻辑卷的分区
  18. uart中:起始位,停止位,就校验位,数据位,数据位的位数,波特率,数据通讯的接口定义
  19. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(6)- 打包发布(PyInstaller3.3.1)
  20. 《人工智能》之《机器学习》

热门文章

  1. mac 安装 PyAudio
  2. 混淆矩阵 (Confusion Matrix)
  3. 北理工慕课 嵩天 Python零基础入门 笔记整理
  4. json react 展示工具_基于jsoneditor二次封装一个可实时预览的json编辑器组件(react版)...
  5. 99定时器设计c语言,51单片机写的曝光定时器C语言程序
  6. 7216:Minecraft题解
  7. Chrome浏览器打开Axure原型图
  8. 企业员工人事管理系统(数据库课设)
  9. ACM32 MCU元器件AD封装库
  10. 教程篇(6.4) 02. 路由、会话和性能SLA ❀ SD-WAN ❀ Fortinet 网络安全架构师 NSE7