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

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

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

源代码

  1. 简单纱效果:
  2. for(i=0;i<lHeight;i++)
  3. {
  4. for(j=0;j<lWidth;j++)
  5. {
  6. if((i+j)%2==0)
  7. {
  8. lpSrc = (char*)lpDIBBits+i*lWidth+j;
  9. *lpSrc=0;
  10. }
  11. }
  12. }
  13. 复杂纱效果:
  14. for(i=0;i<lWidth/2;i++)
  15. {
  16. for(j=0;j<lHeight/2;j++)
  17. {
  18. if(i%2==0&&j%2==0)
  19. {
  20. lpSrc = (char*)lpDIBBits;
  21. *(lpSrc+i*lWidth*2+j*2)=0;
  22. *(lpSrc+i*lWidth*2+j*2+1)=0;
  23. *(lpSrc+(i*2+1)*lWidth+j*2)=0;
  24. *(lpSrc+(i*2+1)*lWidth+j*2+1)=0;
  25. }
  26. }
  27. }

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

相关文章