本科课程【数字图像处理】实验1 - 腐蚀与膨胀
大家好,我是【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) 数据输出
结论:
腐蚀操作可以抹掉图像周围的小渣滓,膨胀操作可以填补图像中间的空洞,而开操作与闭操作结合使用可以实现图像的去“渣渣”与填“洞洞”。
三、 实验环境
- 操作系统:WINDOWS 8
- 开发工具:Visual Studio、
- 实验设备: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 - 腐蚀与膨胀相关推荐
- 数字图像处理---通俗理解腐蚀与膨胀
本人已经打算将这一系列博文做成动画趣味科普的形式来呈现,感兴趣的话可以点这里. 0.腐蚀与膨胀有什么卵用? 腐蚀与膨胀是数字形态学里的两个基本操作,一般用于二值图像(当然RGB图也可以用).腐蚀的作用 ...
- matlab图像处理基础实验,数字图像处理实验报告 Matlab图像处理基础
<数字图像处理实验报告 Matlab图像处理基础>由会员分享,可在线阅读,更多相关<数字图像处理实验报告 Matlab图像处理基础(27页珍藏版)>请在人人文库网上搜索. 1. ...
- 数字图像处理实验(总计23个)汇总
以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...
- 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理
数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...
- 数字图像处理实验——Python语言实现
数字图像处理实验--Python语言实现 实验一:数字图像处理入门 实验二:直方图均衡 实验三:线性平滑和锐化--掩模法 实验四:非线性平滑--中值滤波 实验五:非线性锐化--梯度法 GitHub地址 ...
- 数字图像处理实验三图像增强
一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法. (2)熟练掌握直方图均衡化和直方图规定化的计算过 程. (3)熟练掌握空域滤波中常 ...
- 数字图像处理实验四图像频域增强
一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...
- 数字图像处理实验5图像复原
一.实验目的 (1)了解图像复原的目的及意义,加深对图像复原理论的认识. (2)掌握维纳滤波复原基本原理. (3)掌握约束最小二乘方复原方法. (4)掌握盲解卷积复原方法 二.实验内容 (1)维纳滤 ...
- 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...
<数字图像处理(实验部分)>教案 实验一:数字图像处理中MATLAB使用基础实验 一. MATLAB软件安装 二. 进入MATLAB运行环境 三. MATLAB编程基础 3.1.变量 预定 ...
- matlab数字图像实验报告,数字图像处理实验报告(matlab)
数字图像处理实验报告(matlab) 学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099 2011年10月 实验一 直方图均衡化 一. 实验目的: 1. 熟悉图像数据在计算机中的 ...
最新文章
- jsp中九大内置对象
- Swift 1.1语言第7章 函数和闭包
- Vue实现仿音乐播放器6-实现新歌速递与swiper轮播图切换
- 神策分析 1.16 版本上线场景库,实操方法论融入产品,全方位赋能多角色应用...
- 全国计算机二级考试c语言指针,全国计算机二级考试C语言 指针精讲课件.ppt
- boost::graph模块实现Graphviz DOT 语言阅读器
- Eclipse Maven 编译错误 Dynamic Web Module 3.0 requires Java 1.6 or newer 解决方法
- Python中const类的实现
- python中的常量_深入理解Python中的内置常量
- 算法笔记2-优先队列(堆)(上)
- 啦啦外卖独立版41.4+全插件+可运营版本+开源(亲测100%可用)
- PYTHON网络爬虫大数据朱炯明
- 最新大数据产业生态地图:十大爆发点,百大公司起底
- Visual Studio 2013安装使用方法
- python从视频中提取音频信号_通过python从音频文件中提取音频
- ubuntu16.04不能访问新加卷
- 新服务挂载1T硬盘进行逻辑卷的分区
- uart中:起始位,停止位,就校验位,数据位,数据位的位数,波特率,数据通讯的接口定义
- 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(6)- 打包发布(PyInstaller3.3.1)
- 《人工智能》之《机器学习》
热门文章
- mac 安装 PyAudio
- 混淆矩阵 (Confusion Matrix)
- 北理工慕课 嵩天 Python零基础入门 笔记整理
- json react 展示工具_基于jsoneditor二次封装一个可实时预览的json编辑器组件(react版)...
- 99定时器设计c语言,51单片机写的曝光定时器C语言程序
- 7216:Minecraft题解
- Chrome浏览器打开Axure原型图
- 企业员工人事管理系统(数据库课设)
- ACM32 MCU元器件AD封装库
- 教程篇(6.4) 02. 路由、会话和性能SLA ❀ SD-WAN ❀ Fortinet 网络安全架构师 NSE7