- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告
课程名称数字图像处理实验
学生学院信息工程学院
专业班级—
学号
姓名
指导教师曹江中何家峰
2013年12月31日
实验三、图像的空间域平滑和锐化
实验项目名称:图像的空间域平滑和锐化
实验项目性质:设计性实验
所属课程名称:数字图像处理
实验计划学时:3
一.实验目的
掌握图像模板运算的流程。
进一步理解图像的平滑、锐化原理、。
了解图像平滑、锐化的效果和作用。
二实验内容和要求
编程分别实现图像的平滑和锐化。
实验主要仪器设备和材料
计算机,VC++6.0
实验原理
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技 术,屮值滤波的基本原理是把数字图像或数字序列屮一点的值用该点的一个邻域 中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。 方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生 成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g (x,y) =med {f (x-k, y-1), (k, 1 G W)},其中,f(x, y), g(x, y)分别为原始图像和处理后 图像。W为二维模板,通常为3*3, 5*5区域,也可以是不同的的形状,如线状, 圆形,十字形,圆环形等。
实验代码(响应函数的代码):
void CTestView: :0nsmooth() //平滑处理--中值滤波,模板宽度为3 {
// TODO: Add your command handler code here
//////////////////////////
//功能:平滑处理一中值滤波
//////////////////////////
//判断图像是否打开,没打开,则弹出提示框并退出函数
if(!m_dib. m_bLoaded)
{
AfxMessageBoxC图像还打开,请先打开图像! ”);
return;
}
〃获取图像宽和高
int nw=m_dib. GetDIBWidthO ;
int nh=m dib.GetDIBHeight();
int table_gray [9];〃记录 3*3 模板的值
int gray [255*255];//记录模板扫描后的结果
int i, j;//j 行,i 列
int num=0;
for(j=l;jnh-l;j++)
{
for (i=l; i〈nwT ; i++)
{
table gray[0]=m_dib. m_pdata[(j-1)*nw+(i~l)]; tab1e_gray[1]=m_dib. m_pdata[(j-l)*nw+i];
table_gray[2]=m dib. m pdata[(j-l)*nw+(i+l)]; table_gray [3] =m_dib. m_pda/ta[j*nw+(iT)]; table gray[4]=m dib. m pdata[j*nw+i];
table gray [5]=m_dib. m pdata_[j*nw+(i + 1)]; table_gray[6]=m_dib. m_pdata[(j+1 )*nw+(iT)]; table_gray[7]=m dib. m pdata[(j+l)*nw+i];
tab 1e_gray[8]=m_dib. m_pdata[(j+1)*nw+(i+1)];
//冒泡排序
int m, n;
int temp;
for (m=0;m8;in++)
for (n=m+l;n〈=9;n++)
{
if(table_gray[m]tablegray[n])
{
//值互换
temp二table gray[m];
tab 1e_gray[m]=tab1e_gray[n]; table gray[n]=temp;
}
}
}
gray[num++]=table_gray[4];
}
}
num=0;
///更新图像
for(j=3/2;jnh-3/2;j++)
for (i=3/2; inw-3/2; i 卄)
{
m dib. m pdata[j*nw+i]=gray[num++];
}
m dib. UpdateDataO ;//将修改的m pdata的数据赋值给m pDTBData,以显示修改的结 果
InvalidateO ;//刷新屏幕
实验效果图:
七实验心得
这次的实验设计也使我意识到了理论与实践相结合的重要作用,学习到知识应该应用到 实践屮。我进一步熟悉VC++6. 0的MFC编程,熟悉利用CDIB类。学习了数字图像处理一些 基本的原理、算法设计、分析方法和实现方法。在调试设计的过程中,也意识到了该设计存 在的不足:首先是学习方式的迟缓,由于是采用逐次学习,使得学习的时间变得比较长,如 果学习的模板
原创力文档


文档评论(0)