数字图像处理课程设计--最大值、最小值滤波图像增强.doc

数字图像处理课程设计--最大值、最小值滤波图像增强.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理课程设计 ——最大值、最小值滤波图像增强 实验目的:熟悉了解、学习C、C++语言; 学习VC++在图像处理中的应用; 深入了解图像的增强处理; 深入了解用最大值滤波、最小值滤波增强处理图像的基本知识; 掌握图像处理的基本方法掌握最大值、最小值滤波的程序编写及其它图像增强处理的程序编写的了解。 实验仪器: TestVC软件,计算机,photoshop软件。 实验原理: 图像增强就是采用某些技术把质量低的图像进行计算机处理, 有选择地加强或抑制图像中的某些信息, 改善图像质量, 提高人或机器对图像的分析与判读能力。 图像的增强处理方法一共有两种,分别是空间域方法和频域方法。空间域方法主要是运用空间滤波对图像增强进行处理,所谓滤波,就是过滤掉图像中的一些“成分”,对数字图像的直接滤波就是空间滤波(相对于频率域滤波)。空间滤波主要包括平均滤波、中值滤波、最大值滤波、最小值滤波等。空间滤波是通过空间滤波器实现。空间滤波器就是在一个邻域(如包围该像素的一个小矩形区域)里,对该邻域包围的像素的进行操作。空间滤波器包括线性滤波器如:线性操作,如加、减、乘运算;非线性滤波器如:非线性操作。空间滤波器又叫模板,类似于矩阵,大小有3*3模板、5*5模板、9*9模板等。 如:9*9模板: 空间滤波对图像的增强处理主要是通过模板运算实现的,按照指定的模板进行运算。 如右图,是对模板运算的 的图示解释。 模版运算实现的主要步骤: 1、将模板在图中遍历,并将模板中心与图中某个像素位置重合; 2、将模板上的各个系数与模板下的各对应像素的灰度值相乘; 3、将所有乘积相加; 4、将上述运算结果赋给模板中心位置的像素。 最大值滤波、最小值滤波的原理:设输出的图像为g(x,y), (s-1,t-1) (s-1,t) (s-1,t+1) (s,t-1) (s,t) (s,t+1) (s+1,t-1) (s+1,t) (s+1,t+1) 最大值滤波 最小值滤波 实验内容: 1,在百度图库中寻找一张图片: 2,在Photoshop中,将图片改为宽300像素,高300像素的图片,模式保存为RGB,8位/通道,格式为bmp,保存在D盘中,命名为:myimge; 3,打开TestVC.dsw工程文件,再打开mytest.cpp文件,在指定位置输入程序 4,编译,调试,运行。 实验结果: 利用for循环编写代码; 1.1最大值滤波for循环主要代码: void CTestVCView::test(BYTE inimage[300][300],BYTE outimage[300][300]) { int i,j,max; for(i=1;i300;i++) { for(j=1;j300;j++) { max=inimage[1000][1000]; if(inimage[i][j]max) { max=inimage[i][j]; } outimage[i][j]=max; } } } 1.2代码截图: 1.3 输入图像(左),输出图像(右); 2.1最小值滤波for循环主要代码; void CTestVCView::test(BYTE inimage[300][300],BYTE outimage[300][300]) { int i,j,min; for(i=1;i300;i++) { for(j=1;j300;j++) { min=inimage[1000][1000]; if(inimage[i][j]min) { min=inimage[i][j]; } outimage[i][j]=min; } } } 2.2代码截图; 2.3实验的输入图像如下图左,处理图像如下图右: 二、利用for、、、if判断语句进行编码; 1.1 最大值滤波的主要编码; void CTestVCView::test(BYTE inimage[300][300],BYTE outimage[300][300]) { int i,j,max; for(i=1;i300;i++) { for(j=1;j300;j++) { max=inimage[i][j]; if(inimage[i-1][j]max) { max=inimage[i-1][j]; } if(inimage[i-1][j-1]max) { max=inimage[i-1][j-1]; } if (inimage[i-1][j+1]max) {

文档评论(0)

li455504605 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档