基于matlab初识空间滤波器

1.加噪声

使用imnoise对原始图像进行添加噪声,用法如下。

此说明来自matlab官方

2.空间滤波器

2.1线性空间滤波器

matlab中可通过fspecial得到一个滤波器w

w = fspecial('type',parameters);
% type 规定滤波器的类型,parameters进一步定义

常见类型如下:

平均滤波器:

% 规定一个大小为r*c的平均滤波器,默认为3*3,可用单个数替代r*c
w = fspecial('average',[r c]);

高斯滤波器:

% 规定一个大小为r*c,标准差为sig的高斯低通滤波器,默认值为3*3和0.5
w = fspecial('gaussian',[r c],sig)

高斯滤波器是通过离散化的高斯函数计算得到的。σ越大,数据分布越分散,滤波器越平缓,σ越小,数据分布越集中,滤波器越陡峭。根据高斯曲线分布,可以计算出模板,进行滤波。标准差越大,分布的峰值越宽,曲线越扁平;标准差越小,分布的峰值越窄,曲线越尖锐。标准差是一组数据平均值分散程度的一种度量。一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值。

gau1 = fspecial('gaussian',[3,3],1);

gau2 = fspecial('gaussian',[3,3],10);

拉普拉斯滤波器:

% 根据alpha值得到拉普拉斯模板,模板大小为3*3,alpha取[0,1],默认为0.2
w = fspecial('laplacian',alpha);

拉普拉斯滤波器可用于图像增强,一般使用时需用原图减滤波后图像以得到质量更高的图像。

LoG滤波器(高斯-拉普拉斯滤波器):

% 默认值为5*5和0.5
w = fspecial('log',[r c],sig);

噪声会影响拉普拉斯滤波,可以先进行高斯滤波。

由于卷积操作具有结合律,可以先将高斯平滑滤波器与拉普拉斯滤波器进行卷积,然后利用得到的滤波器去对图片进行滤波。

2.2非线性空间滤波

排序统计滤波器:

% 将 A 中的每个元素替换为由 domain 中的非零元素指定的A中相邻元素的有序集中的第 order 个元素
B = ordfilt2(A,order,domain)

详细用法参考此处

基于此可实现中值滤波器

g = ordfilt2(f,(m*n+1)/2,ones(m,n));
% matlab中给出了专用实现,padopt指定边界填充选项,zeros(默认),symmetric,indexed
g = medfilt2(f,[m n],padopt)

滤波实现

所谓滤波,可用imfilter实现,可分为相关和卷积两种,卷积可理解为卷积核旋转180°再进行相关(此处旋转,顺时针or逆时针得到的矩阵是相同的)。

Fimage =imfilter(image,w); % w为卷积核,默认为相关,填充0,输出和输入大小相同。
Fimage =imfilter(image,w,'conv',boundary_options,'full'); % boundary_options边界扩展选项

问题

在使用imfilter滤波时发现,三维RGB图像可以用二维矩阵进行滤波。

但ordfilt2,仅可对灰度图像,即二维图像进行处理(rgb2gray进行转化)。但对于中值滤波,存在方法medfilt3进行滤波。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值