收藏 分销(赏)

椒盐噪声和中值滤波.docx

上传人:s4****5z 文档编号:8796481 上传时间:2025-03-02 格式:DOCX 页数:6 大小:1.82MB
下载 相关 举报
椒盐噪声和中值滤波.docx_第1页
第1页 / 共6页
椒盐噪声和中值滤波.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述
王柯 Salt-and-pepper noise 1. 产生椒盐噪声 在图像中随机选取6000个点,3000设为白色,3000个设为黑色,产生椒盐噪声 %----------------------------------------------------------------------------------------------------------------------------% %----------------------------------------------------------------------------------------------------------------------------% #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <cv.h> void salt(cv::Mat &image,int n) { for(int k=0;k<n;k++) { int i=rand()%image.cols; int j=rand()%image.rows; if(image.channels()==1) { image.at<uchar>(j,i)=255; }else if (image.channels() == 3) { image.at<cv::Vec3b>(j,i)[0]= 255; image.at<cv::Vec3b>(j,i)[1]= 255; image.at<cv::Vec3b>(j,i)[2]= 255; } }//产生3000个白点 for(int k=0;k<n;k++) { int i=rand()%image.cols; int j=rand()%image.rows; if(image.channels()==1) { image.at<uchar>(j,i)=0; }else if (image.channels() == 3) { image.at<cv::Vec3b>(j,i)[0]= 0; image.at<cv::Vec3b>(j,i)[1]= 0; image.at<cv::Vec3b>(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 <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <cv.h> 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);//默认窗口大小为*3 cvNamedWindow("after"); cvShowImage("after",im_median_filter); //cvSaveImage("im_median.jpg",im_median_filter); cv::waitKey(0); return 1;} %----------------------------------------------------------------------------------------------------------------------------% %----------------------------------------------------------------------------------------------------------------------------% 处理前的灰度图像: 处理后的灰度图像: 原始灰度图像: 3.结论: 可以看出中值滤波能够较好的恢复有椒盐噪声的图像 4.Matlab中值滤波: clear; clc; image = imread('gray.jpg'); result= media_filter(image,7); imshow(result); imwrite(result,'media_filter.jpg'); %%function function 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); end end d = uint8(x2); 5.MATLAB中值滤波结果及结论: 中值滤波是图像处理中的一个常用步骤,它对于斑点噪声和椒盐噪声来说尤其有用。中值滤波方法以牺牲图像清晰度为代价消除图像中的椒盐噪声。同时,中值滤波不能多次使用,因为这样会使图像各个像素间趋于相同,整个图像就会变得越来越模糊。 7x7 11x11 2次11x11 GaussNoise 1.利用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);%将与模板运算后的各元素的均值赋给模板中心位置的元素 end end %未被赋值的元素取原值 d = uint8(x2); 3.结论: 可见均值滤波在一定程度上能够减弱高斯噪声对图像的影响,但是并不能够完全消除而且随着模板矩阵阶数增大虽然滤波效果更好,但是图像会变模糊。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服