空间滤波_MATLAB

来源:互联网 发布:开天猫淘宝店多少钱 编辑:程序博客网 时间:2024/05/01 16:13

空间滤波分为线性空间滤波和非线性空间滤波。线性空间滤波基于计算乘积和的,而非线性空间滤波则是基于涉及滤波器包围的领域内像素的非线性操作。

线性滤波:laplacian滤波

clc;
f = imread('./face_2.jpg');
w4  = fspecial('laplacian',0);%定义拉普拉斯滤波器
w8 = [1 1 1;1 -8 1;1 1 1];%定义滤波器
f = im2double(f);% 滤波器是double类的
g = imfilter(f,w4,'replicate');
subplot(2,2,1),imshow(f); title('原图');
g4 = f - imfilter(f,w4,'replicate');%进行滤波操作
g8 = f - imfilter(f,w8,'replicate');
subplot(2,2,2),imshow(g); title('laplacian滤波');
subplot(2,2,3),imshow(g4);title('laplacian滤波增强');
subplot(2,2,4),imshow(g8);title('中心系数(-8)滤波增强');

结果如下:


非线性:中值滤波

clc;

f = imread('./face_2.jpg');
f = rgb2gray(f);%需要转化为灰度图像
fn = imnoise(f,'salt & pepper', 0.2);%0.2表示椒盐噪声中黑白点出现的概率。
gn = medfilt2(fn);%进行中值滤波
gns = medfilt2(fn,'symmetric');%降低图像边界的黑色污点
subplot(1,2,1),imshow(gn);
subplot(1,2,2),imshow(gns);