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

x33g5p2x  于2022-05-18 转载在 其他  
字(1.7k)|赞(0)|评价(0)|浏览(380)

大家好,我是【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

相关文章