椒盐噪声和中值滤波_第1页
椒盐噪声和中值滤波_第2页
椒盐噪声和中值滤波_第3页
椒盐噪声和中值滤波_第4页
椒盐噪声和中值滤波_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

王柯Salt-and-pepper noise1. 产生椒盐噪声在图像中随机选取6000个点,3000设为白色,3000个设为黑色,产生椒盐噪声%-%-%#include #include #include void salt(cv:Mat &image,int n)for(int k=0;kn;k+)int i=rand()%image.cols;int j=rand()%image.rows; if(image.channels()=1)image.at(j,i)=255;else if (image.channels() = 3) image.at(j,i)0= 255; image.at(j,i)1= 255; image.at(j,i)2= 255; /产生3000个白点for(int k=0;kn;k+)int i=rand()%image.cols;int j=rand()%image.rows; if(image.channels()=1)image.at(j,i)=0;else if (image.channels() = 3) image.at(j,i)0= 0; image.at(j,i)1= 0; image.at(j,i)2= 0; /产生3000个黑点int main()cv:Mat image;image = cv:imread(lena.jpg);salt(image,3000);cv:namedWindow(WK);cv:imshow(WK,image);cv:waitKey(0);return 1;%-%-%2. 中值滤波利用opencv中的cvSmooth对图像进行中值滤波。%-%-%#include #include #include int main()IplImage * image = cvLoadImage(wks.jpg);/cvNamedWindow(before);/cvShowImage(before,image);IplImage * im_gray = cvCreateImage(cvSize(image-width,image-height), IPL_DEPTH_8U, 1);cvCvtColor(image, im_gray, CV_BGR2GRAY);cvNamedWindow(Gray);cvShowImage(Gray,im_gray);cvSaveImage(im_gray.jpg,im_gray);IplImage * im_median_filter = cvCreateImage(cvSize(image-width,image-height), IPL_DEPTH_8U, 1);cvSmooth(im_gray, im_median_filter, CV_MEDIAN);/默认窗口大小为*3cvNamedWindow(after);cvShowImage(after,im_median_filter);/cvSaveImage(im_median.jpg,im_median_filter);cv:waitKey(0);return 1;%-%-%处理前的灰度图像: 处理后的灰度图像: 原始灰度图像:3.结论:可以看出中值滤波能够较好的恢复有椒盐噪声的图像4Matlab中值滤波:clear;clc;image = imread(gray.jpg);result= media_filter(image,7);imshow(result);imwrite(result,media_filter.jpg);%functionfunction d = media_filter(image,m)n=m;height,width=size(image);x1 = double(image);x2 = x1;for i=1:height-n+1 for j=1:width-n+1 A = x1(i:(i+n-1),j:(j+n-1); B = sort(A); C = sort(B); x2(i+(n-1)/2,j+(n-1)/2) = C(n+1)/2,(n+1)/2); endendd = uint8(x2);5.MATLAB中值滤波结果及结论:中值滤波是图像处理中的一个常用步骤,它对于斑点噪声和椒盐噪声来说尤其有用。中值滤波方法以牺牲图像清晰度为代价消除图像中的椒盐噪声。同时,中值滤波不能多次使用,因为这样会使图像各个像素间趋于相同,整个图像就会变得越来越模糊。7x7 11x11 2次11x11GaussNoise1.利用MATLAB向原始灰度图像中添加高斯噪声%clear;clc;image = imread(origin.jpg);noise = imnoise(image,gaussian);% 添加均值为0,方差为0.01的高斯白噪声imshow(noise);title(gaussian noise)%2.利用均值滤波clear;clc;image = imread(gaussnoise.jpg);result = avg_filter(image,11);imshow(result);imwrite(result,use11x11.jpg)function d=avg_filter(x,n)%x为待处理的图像,n为模板大小a(1:n,1:n)=1;height,width=size(x);x1=double(x);x2=x1;for i=1:height-n+1 for j=1:width-n+1 c = x1(i:(i+n-1),j:(j+n-1).*a;%取出x1中从(i,j)开始的n行n列元素与模板相乘 s=sum(sum(c); x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n);%将与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论