赞
踩
代码包括:
① 为图像添加高斯噪声、椒盐噪声;
② 图像滤波处理:中值滤波、算术均值滤波、高斯滤波。
- clear; clc;
-
- M = imread('nc.jpg'); % 读取MATLAB中的名为timg的图像
- subplot(2,5,1);
- imshow(M); % 显示原始图像
- % title('original');
- title('(1)原始图像');
-
- gray = rgb2gray(M);
- subplot(2,5,2);
- imshow(gray); % 显示灰度图像
- % title('gray');
- title('(2)灰度图像');
-
- P1 = imnoise(gray,'gaussian',0.08); % 加入高斯躁声
- subplot(2,5,3);
- imshow(P1); % 加入高斯躁声后显示图像
- % title('gaussian noise');
- title('(3)加入高斯噪声');
-
- P2 = imnoise(gray,'salt & pepper',0.02); %加入椒盐躁声
- subplot(2,5,4);
- imshow(P2); %加入椒盐躁声后显示图像
- % title('salt & pepper noise');
- title('(4)加入椒盐躁声');
-
- g = medfilt2(P1); % 对高斯躁声中值滤波
- subplot(2,5,5);
- imshow(g);
- % title('medfilter gaussian');
- title('(5)对高斯躁声中值滤波');
-
- h = medfilt2(P2); % 对椒盐躁声中值滤波
- subplot(2,5,6);
- imshow(h);
- % title('medfilter salt & pepper noise');
- title('(6)对椒盐躁声中值滤波');
-
- a=[1 1 1 % 对高斯躁声的算术均值滤波
- 1 1 1
- 1 1 1];
- l=1/9*a;
- k = conv2(double(P1),double(l));
- subplot(2,5,7);
- imshow(k,[]);
- % title('arithmeticfilter gaussian');
- title('(7)对高斯躁声的算术均值滤波');
-
- d = conv2(double(P2),double(l)); % 对椒盐躁声的算术均值滤波
- subplot(2,5,8);
- imshow(d,[]);
- % title('arithmeticfilter salt & pepper noise');
- title('(8)对椒盐躁声的算术均值滤波');
-
- sigma=8; % 标准差大小
- window=double(uint8(3*sigma)*2+1); % 窗口大小一半为3*sigma
- H=fspecial('gaussian', window, sigma); % fspecial('gaussian', hsize, sigma)产生滤波模板
- img_gauss=imfilter(P1,H,'replicate'); % 为了不出现黑边,使用参数'replicate'(输入图像的外部边界通过复制内部边界的值来扩展)
- subplot(2,5,9);
- imshow(img_gauss);
- % title('gaussian filting gauss noise');
- title('(9)对高斯噪声的高斯滤波');
-
- img_salt=imfilter(P2,H,'replicate');
- subplot(2,5,10);
- imshow(img_salt);
- % title('gaussian filting salt pepper noise');
- title('(10)对椒盐噪声的高斯滤波');
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。