数字图像基本处理——空间滤波(spatial filtering)

摘要:
理论空间滤波的公式如下:空间滤波的过程是连续使用滤波器对具有相同大小的局部块的图像进行滤波,并且在中心点上更新效果结果,因此m和n需要为奇数。与卷积不同,空间滤波通常被描述为相关性,即滤波器与图像上的局部块之间的相关性。中值滤波器适用于突变噪声点,尤其是脉冲噪声和胡椒噪声。在此基础上,我们可以增大低通滤波器的尺寸以观察结果。我们将原来的3X3改为5X5。结果如下:可以看出,当低通滤波器尺寸增加时,图像更加模糊。

空间滤波器主要包括平滑滤波器和锐化滤波器,下面从理论和实践两个部分阐述。

理论

空间滤波的公式如下:

数字图像基本处理——空间滤波(spatial filtering)第1张

数字图像基本处理——空间滤波(spatial filtering)第2张

空间滤波的过程也就是不断用一个filter(一般为3X3)在图像上与同样大小的局部patch作用,作用结果更新在中心点上,所以需要m,n为奇数。

在2维时域信号上做卷积与此公式稍有不同,如下:

数字图像基本处理——空间滤波(spatial filtering)第3张

可以看到,空间滤波公式中两个+变成了-,对应于空间滤波中的filter旋转180度之后的filter相作用,所以当filter为对角线对称的时候,空间滤波与2维卷积是一样的,而通常filter是对角线对称的。区别于卷积,一般将空间滤波描述为correlation,即看filter和图片上local patch的相关性。


1、平滑滤波器

平滑滤波器的两个主要作用是模糊化和降噪(如美颜相机中的磨皮操作)

数字图像基本处理——空间滤波(spatial filtering)第4张

分母除以一个数保证变换后强度不会大增。

1.1 线性滤波

常用的线性滤波有均值滤波(频域上的低通滤波器)和高斯滤波。下图分别是均值滤波器(左)和高斯滤波器(右)示例:

数字图像基本处理——空间滤波(spatial filtering)第5张

一个例子就是处理如下左图,只想保留较大的点,通过平滑过滤器模糊化,将小点融合,该地方有个trick就是因为该图对比度比较明显,可以通过加阈值来截断亮点和暗点。

数字图像基本处理——空间滤波(spatial filtering)第6张

1.2 非线性滤波

常用的线性滤波有中值滤波和最大值滤波。

中值滤波器:

数字图像基本处理——空间滤波(spatial filtering)第7张

从上式很容易看出中值滤波就是在输入图像的patch上用中值代替该点。中值滤波器适用于突变的噪声点,尤其是impluse noise和pepper noise。


2、锐化

锐化就是突出边缘信息,而边缘会有像素点上的突变,所以可以用导数来检测边缘。

一维空间中一阶导数和二阶导数如下:(一阶导数就是导数的定义,二阶导数利用一阶导数的公式求解得,需要替换一次自变量)

数字图像基本处理——空间滤波(spatial filtering)第8张

二维空间中,需要对x,y求偏导

数字图像基本处理——空间滤波(spatial filtering)第9张

求和得到2维空间中的2阶导数(这也就是拉普拉斯算子):

数字图像基本处理——空间滤波(spatial filtering)第10张

上式也可以写成一个3X3的spatial filter(系数对应filter中的值):

数字图像基本处理——空间滤波(spatial filtering)第11张

这个滤波器叫做Laplacian Filter Masks,类似的还有:

数字图像基本处理——空间滤波(spatial filtering)第12张

由于Laplacian Filter Masks对应的是二阶导数,可以检测出边缘信息,但是导数相较于原图,损失了强度,所以锐化需要叠加上原图的信息,只需再加上一个只有中间值为1的filter,也即在Laplacian Filter Masks中间的值上+1(如4+1)/-1(如-8-1)。


实践

下图是一个overall的结果,后续的结果都基于此进行调整:

数字图像基本处理——空间滤波(spatial filtering)第13张

可以看出平滑后的船体要稍微模糊一些。基于此,我们可以增加low pass filter的尺寸来观察结果,我们将原来的3X3,改为5X5,结果如下:

数字图像基本处理——空间滤波(spatial filtering)第14张

可以看出,增大低通filter size,图像更加模糊。

我们可以看出第一张图的subplot5只得到了图像的边缘,为了恢复图像的原本信息,需要叠加上原始图像信息,更改后结果如下:

数字图像基本处理——空间滤波(spatial filtering)第15张

为了更清楚的看到中值滤波的效果,更换测试图片:

数字图像基本处理——空间滤波(spatial filtering)第16张

我们可以看出中值滤波器对于椒盐噪声效果非常好。下面测试一下不同的filter size对中值滤波器结果的影响:

数字图像基本处理——空间滤波(spatial filtering)第17张

filter size从左到右分别为:[3 3]; [11 1]; [1 11]。我们可以看出后面两种情况可以分别消除横纹或纵纹。

本实践部分代码如下:

addpath('E:Digital_img_processingLecture_5_discussion_spatial_filter');
fig0=imread('ex_median.jpg');
% smooth filter
LP=1/9*[1 1 1; 1 1 1; 1 1 1];
LP1=1/49*[1 1 1 1 1 1 1; 1 1 1 1 1 1 1; 1 1 1 1 1 1 1; 1 1 1 1 1 1 1; 1 1 1 1 1 1 1; 1 1 1 1 1 1 1; 1 1 1 1 1 1 1];
GP=1/16*[1 2 1; 2 4 2; 1 2 1];
if length(size(fig0))==3 % 如果为彩色的,需要转为灰色的,否则不变,由中值滤波使用;也可以调用3D函数,这样就不需要转换
    fig0_gray=rgb2gray(fig0);
else
    fig0_gray=fig0;
end
fig1=imfilter(fig0,LP);
fig2=imfilter(fig0,GP);
% median filter
fig3=medfilt2(fig0_gray,[3 3]);
% fig4=medfilt2(fig0_gray,[6 6]); 奇数
fig5=medfilt2(fig0_gray,[11 1]);
fig6=medfilt2(fig0_gray,[1 11]);
% sharpening filter 值可能为负,所以需要转成double
SF=[-1 -1 -1; -1 8 -1; -1 -1 -1];
SF1=[-1 -1 -1; -1 9 -1; -1 -1 -1]; % Add the original intensity
fig7=imfilter(im2double(fig0),SF1);
% plot
figure; 
subplot(2,3,1);imshow(fig0,[]);title('original')
subplot(2,3,2);imshow(fig1,[]);title('low pass filter')
subplot(2,3,3);imshow(fig2,[]);title('gaussian filter')
subplot(2,3,4);imshow(fig5,[]);title('median filter')
subplot(2,3,5);imshow(im2uint8(fig7));title('sharpening filter')

免责声明:文章转载自《数字图像基本处理——空间滤波(spatial filtering)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js对象的key类型【WPF】给UserControl引入多个资源下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

现代科技进步促使微积分学继续向前发展

   大家知道,数学软件包(Mathematica)能使我们“看见”数学函数的细微部分的表现,开阔了人们的眼界,发现了“逐点”定义的函数导数的“病态”表现(违反了人们的直觉)。面对这种局面,我们该怎么办呢?          根据文献记载,1690年,数学家罗必达与贝尔努利(l’Hospital/Bernoulli)在微积分教材里面说:“curves co...

matlab在空域与频域中去除周期噪声、椒盐噪声的简单应用

前言 去年图像处理的DLL,有学弟问我做的思路,便放到博客里github地址,欢迎star图像增强处理:设计一套空间域与频率域结合的图像增强算法,处理以下任一组图片中的带噪声图像,去除噪声,提高图像质量。(1)已知:噪声为随机噪声和周期噪声混合噪声;(2)要求:a)去噪处理后,计算均方误差评估去噪处理后图像的去噪效果b)撰写完整的科技报告(形式类似科技论文...

SciPy模块应用

1.图像模糊         图像的高斯模糊是非常经典的图像卷积例子。本质上,图像模糊就是将(灰度)图像I 和一个高斯核进行卷积操作:,其中是标准差为σ的二维高斯核。高斯模糊通常是其他图像处理操作的一部分,比如图像插值操作、兴趣点计算以及很多其他应用。SciPy 有用来做滤波操作的scipy.ndimage.filters 模块。该模块使用快速一维分离的方...

Doris导数 踏雪扬尘

目录 概述 导入方式 批量删除 Broker Load Routine Load Stream load 概述 Doris现在支持Broker load/routine load/stream load/mini batch load等多种导入方式。spark load主要用于解决初次迁移,大量数据迁移doris的场景,用于提升数据导入的速度。 导...

常见反函数、反函数导数(微分)公式

0. 反函数基本认识 互为反函数之反函数的相互性:g(x) 是 f(x) 的反函数,则 f(x) 也是 g(x) 的反函数; f(g(x))=x, g(f(x))=x 1. 反函数导数公式 MORE RULES FOR DERIVATIVES 如果函数 g(x) 是 f(x) 的反函数,那么就有: dgdx=1df(g)d(g) 证明,所谓反函数即...

【HEVC简介】DB-DeBlock Filter

参考论文:HEVC Deblocking Filter 《HEVC标准介绍、HEVC帧间预测论文笔记》系列博客,目录见:http://www.cnblogs.com/DwyaneTalk/p/5711333.html 一、Deblock Filter的目的 在AVC中,图像被分成16x16的MB,对于HEVC则分成16x16到64x64的LCU,LCU...