opencv_图像去噪实验..docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验名称实验 4:图像去噪实验目的1、掌握算术均值滤波器、几何均值滤波器、谐波和逆谐波均值滤波器进行图像去噪的算法 2、掌握利用中值滤波器进行图像去噪的算法 3、掌握自适应中值滤波算法 4、掌握自适应局部降低噪声滤波器去噪算法 5、掌握彩色图像去噪步骤 实验内容1、均值滤波 具体内容:利用 OpenCV 对灰度图像像素进行操作,分别利用算术均值滤波器、几何均值滤波器、谐波和逆谐波均值滤波器进行图像去噪。模板大小为5*5。(注:请分别为图像添加高斯噪声、胡椒噪声、盐噪声和椒盐噪声,并观察滤波效果) 2、中值滤波 具体内容:利用 OpenCV 对灰度图像像素进行操作,分别利用 5*5 和 9*9尺寸的模板对图像进行中值滤波。(注:请分别为图像添加胡椒噪声、盐噪声和椒盐噪声,并观察滤波效果) 3、自适应均值滤波。 具体内容:利用 OpenCV 对灰度图像像素进行操作,设计自适应局部降低噪声滤波器去噪算法。模板大小 7*7(对比该算法的效果和均值滤波器的效果) 4、自适应中值滤波 具体内容:利用 OpenCV 对灰度图像像素进行操作,设计自适应中值滤波算法对椒盐图像进行去噪。模板大小 7*7(对比中值滤波器的效果) 5、彩色图像均值滤波 具体内容:利用 OpenCV 对彩色图像 RGB 三个通道的像素进行操作,利用算术均值滤波器和几何均值滤波器进行彩色图像去噪。模板大小为 5*5。实验完成情况实验步骤:先为灰度图像添加高斯噪声、胡椒噪声、盐噪声和椒盐噪声,再分别利用算术均值滤波器、几何均值滤波器、谐波和逆谐波均值滤波器进行图像去噪。模板大小为5*5。核心代码如下:添加各类噪声:IplImage* AddGuassianNoise(IplImage* src) //添加高斯噪声{ IplImage* dst = cvCreateImage(cvGetSize(src),src-depth,src-nChannels);IplImage* noise = cvCreateImage(cvGetSize(src),src-depth,src-nChannels);CvRNG rng = cvRNG(-1);cvRandArr(rng,noise,CV_RAND_NORMAL,cvScalarAll(0),cvScalarAll(15));cvAdd(src,noise,dst);return dst;}IplImage* AddPepperNoise(IplImage* src) //添加胡椒噪声,随机黑色点{ IplImage* dst = cvCreateImage(cvGetSize(src),src-depth,src-nChannels);cvCopy(src, dst);for(int k=0; k8000; k++) { int i = rand()%src-height; int j = rand()%src-width; CvScalar s = cvGet2D(src, i, j); if(src-nChannels == 1) { s.val[0] = 0; } else if(src-nChannels==3) { s.val[0]=0; s.val[1]=0; s.val[2]=0; } cvSet2D(dst, i, j, s); }return dst; }IplImage* AddSaltNoise(IplImage* src) //添加盐噪声,随机白色点{ IplImage* dst = cvCreateImage(cvGetSize(src),src-depth,src-nChannels);cvCopy(src, dst);for(int k=0; k8000; k++) { int i = rand()%src-height; int j = rand()%src-width; CvScalar s = cvGet2D(src, i, j); if(src-nChannels == 1) { s.val[0] = 255; } else if(src-nChannels==3) { s.val[0]=255; s.val[1]=255; s.val[2]=255; } cvSet2D(dst, i, j, s); }return dst;}IplImage* AddPepperSaltNoise(IplImage* src) //添加椒盐噪声,随机黑白点{ IplImage* dst = cvCreateImage(cvGetSize(src),src-depth,src-nChannels);cvCopy(src, dst);for(int k=0; k8000;

文档评论(0)

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

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

1亿VIP精品文档

相关文档