- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
昆明理工大学(数字图像处理)实验报告
实验名称 图像的平滑与锐化和拉普拉斯模糊
实验时间 2013 年 4 月 15 日专业班级学 号 姓 名
成 绩 教师评语:
一、实验目的
掌握图像平滑与锐化的基本原理。用C++编程实现图像的平滑与锐化。
利用算法的调用来实现图像的平滑和锐化。
二、实验原理
1、二维中值滤波平滑:用中值算法把数字图像中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,这样来过滤噪声,实现平滑。但是,这样产生出来的图像会有一定的模糊。
2、梯度算法锐化:用微分的方法对图像处理,锐化因为平滑导致的模糊。
3、拉普拉斯模糊:通过二阶微分像素变得跟周围4个像素一样。
把一个点的
4、去除拉普拉斯模糊:将拉普拉斯模糊形式从原图像中去
除。
三、实验内容
1、选择一种平滑方式对图像进行平滑操作。
2、选择一种锐化方法对图像进行锐化操作。
3、分析图像的平滑与锐化的作用是什么。
4、试分析各种方法的特点。
四、实验步骤
1.在之前实验的基础上对程序进行操作。2.在ClassView中选择添加成员函数mysort
在FileView中找到建立的成员函数的函数名,编写代码。
在ResourcesView中的Menu选项中建立“中值滤波”、“图像锐化”和“拉普拉斯算法”三个子菜单。
在“中值滤波”的子菜单的下拉菜单中创建一个“二维中值滤波”的项,在“拉普拉斯算法”下拉菜单中建立“拉普拉斯模糊”和“去除拉普拉斯模糊”两个项。
三 ,文件电)编捂屯)查看过)点运笣灰度变换几河变换互方图中诅泥波图像锐化拉首拉斯笙法:
三 ,
,......................................................,
文件屯)铜括包)查看包)点运笸 灰度变换几何变换宜方图中信泥被图像锐化拉普拉庙宜法r-···············:
拉普拉助模糊
拉普拉助模糊
杏除拉普拉斯梪糊
分别对“二维中值滤波”、“图像锐化”、“拉普拉斯模糊”和“去除拉普拉斯模糊”建立类向导,编写代码。
voidCZzyUiew::OnErweizhongzhi()//二维中值滤波
{
long 见h;
longi,j;W=lll_DibHead-)biWidth;h=lll_DibHead-biHeight;
unsigned char*f=newunsigned char[炉h];lllelllCP!J(f, lll_llllage,W*h);
int lll,n;lll=5;n=5;
int *a=new int[lll*n];int k,l;
for(i=O;ih;i++)
for(j=0;jw;j++)
{for(k=-lll/2;k(=lll/2;k++)for(l=-n/2;l=n/2;1++)
{a[k*n+l+lll*n/2]=f[(i+k)*W+j+l];
}
lllysort(a,lll*n);
*(lll_llllage+i*W+j)=a[lll*n/2];
}
delete []a;
Invalidate();
// TODO: Addyour COlllllland handler code here
}
五、程序代码
冒泡法算法的程序:
voidCZzyView::mysort(int*a,intn)//算法
{
inti,j,t;for(i=0;in;i++)for(j=0;jn-1-i;j++)
{
if(a[j]a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
二维中值滤波的代码
voidCZzyView::OnErweizhongzhi()//二维中值滤波
{
longw,h;
longi,j;
w=m_DibHead-biWidth;h=m_DibHead-biHeight;
unsignedchar*f=newunsignedchar[w*h];memcpy(f,m_Image,w*h);
intm,n;m=5;n=5;
int*a=newint[m*n];intk,l;for(i=0;ih;i++)
for(j=0;jw;j++)
{for(k=-m/2;k=m/2;k++)for(l=-n/2;l=n/2;l++)
{a[k*n+l+m*n/2]=f[(i+k)*w+j+l];
}
mysort(a
文档评论(0)