本科课程【数字图像处理】实验4 - 图像的蒙纱效果

x33g5p2x  于2022-05-22 转载在 其他  
字(1.1k)|赞(0)|评价(0)|浏览(355)

大家好,我是【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. 实验任务

简单纱效果,对原始图像的像素点,每隔一格就赋值为0,实现效果;复杂纱效果,对原始图像的像素点,把2×2看成一个单元格,每隔一格就赋值为0,实现效果。

2. 程序设计

1) 原理
(1) 简单纱效果:每隔一个像素点就把它赋值为0,掌握了其中的规律,便能通过循环实现效果。
(2) 复杂纱效果:把2×2看成一个像素点,就可以把原始图像的长宽分别除以2,就相当于简单的纱效果。

2) 流程
(1) 打开VC++,打开工作空间,在ResourceView中菜单中添加纱效果按钮;
(2) 在函数中书写相应的代码;
(3) 点击BuildExecute按钮,点击纱效果得到效果图。

3) 数据输出

三、 实验环境

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

源代码

简单纱效果:
for(i=0;i<lHeight;i++)
	{
		for(j=0;j<lWidth;j++)
		{
			
			if((i+j)%2==0)
			{
				lpSrc = (char*)lpDIBBits+i*lWidth+j;
				*lpSrc=0;
			}
		}
	}
	
复杂纱效果:
for(i=0;i<lWidth/2;i++)
	{
		for(j=0;j<lHeight/2;j++)
		{
	        if(i%2==0&&j%2==0)
			{
				lpSrc = (char*)lpDIBBits;
				*(lpSrc+i*lWidth*2+j*2)=0;
				*(lpSrc+i*lWidth*2+j*2+1)=0;
				*(lpSrc+(i*2+1)*lWidth+j*2)=0;
				*(lpSrc+(i*2+1)*lWidth+j*2+1)=0;
			}
		}
	}

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

相关文章