matlab_3_图像处理_空间滤波

滤波是图像处理中常用的技术,可以锐化图像、模糊图像、去除噪声、增强图像等等。这里只讲空间滤波,频率域滤波将在以后讲。
空间滤波:简单来说,是用一个模板(3x3矩阵、5x5矩阵…一般为奇数)扣在图像上,用模板中每一个元素对扣住的范围中对应的像素进行数学操作,将产生的数值赋给模板中心点所对应。

分类:线形空间滤波、非线形空间滤波。

线性空间滤波:基于计算乘积和(线形操作)的滤波。例如New=a*g1+b*g2+c*g3+d*g4+e*g5,这是一个线形操作。

非线性空间滤波:基于某种机制进行滤波,如中值滤波,对模板范围内的图像像素选取中间值,赋予中心点对应的像素。

线性空间滤波

这里必须要理解两个概念:相关和卷积。这两个在具体运算上与前面所有的空间滤波相同。两个在运算上的不同点是,卷积在进行运算前将模板旋转180度(逆、顺时针均可以)。卷积和相关的具体概念容易把人讲糊涂,这里只讲具体应用,只需要知道怎么运算的即可。

运算过程:
matrix 1
matrix 1

matrix 2
matrix 2

  • 相关:R5(中心像素)=R1G1 + R2G2 + R3G3 + R4G4 + R5G5 + R6G6 + R7G7 + R8G8 +
    R9G9
  • 卷积(模板又称核,旋转180度): R5(中心像素)=R1G9 + R2G8 + R3G7 + R4G6+ R5G5 + R6G4 +
    R7G3 + R8G2 + R9G1

滤波函数imfilter():

g=imfilter(f,w,’replicate’)
1
f是待处理的图像,w是滤波器,replicate指定通过复制图像边界外的值来扩展。

函数fspecial(),生成各类二维线形滤波器

w=fspecial('type'parameters)
  • 1,type滤波器的类型.
  • 2,parameters,可选参数。

    f=imread(‘1.jpg’);
    imshow(f)
    w=fspecial(‘average’); %3x3 uniform filter
    f1=imfilter(f,w,’replicate’);
    figure,imshow(f1)

  • 非线性空间滤波

非线性空间滤波:基于设计滤波器保卫的邻域内的像素的非线性操作,例如,令每一个中心点响应等于邻域内最大的像素值。

对于非线性空间滤波,由于其规则太多如:取最大值,最小值,中值或者定义一个非线性函数进行运算。这里只讲最著名、常用的中值滤波。

中值滤波常会用在去除噪声上,特别是椒盐噪声。具体应用如下

f=imread('1.jpg');
f1=imnoise(f,'salt & pepper',0.2); % add salt and pepper noise
f2=medfilt2(f,'symmetric');
subplot(1,2,1);imshow(f1);title('噪声污染');
subplot(1,2,2);imshow(f2);title('中值滤波');

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值