6.1前言
硬件开发中需要复习一些相关原理,简单叙述一下。相关计算无论书籍,网络上的文章或者国内外视频网站上的视频多有描述,均可参考。
均值滤波有让图像更加平滑的作用,本文主要关注其对噪声的去除作用。
6.2原理
均值滤波是线性空间滤波的一种最简单的计算形式。
有些重要概念需要先理解一下。最重要的是相关(correlation)和卷积(convolution)。
先说相关。空间滤波的过程需要对每个像素一次处理,针对每个像素的计算需要考虑其周边像素的值。本质上来讲,如果对部分或者全部的像素进行滤波,就是根据其周边的像素值计算该像素值。比如我们要对一颗像素P进行均值滤波,该像素位于坐标x,y上。那像素P周围的像素值就是计算P数值的重要参数。
x-1,y-1 |
x,y-1 |
x+1,y-1 |
||
x-1,y |
P(x,y) |
x+1,y |
||
x-1,y+1 |
x,y+1 |
x+1,y+1 |
||
作为最简单的一种滤波方式,均值滤波的思想是将其周围的像素逐个除以参与计算像素的个数,其相加的值就是像素P的值。以像素P为例,像素P原值和和周边像素共有9个像素,则每个像素均乘以九分之一累加得到一个新像素值。
这个计算过程可以用下面公式来形容。
简单解释一下。
w(x,y)是个函数,输入一个像素坐标,返回一个计算因数。以均值滤波的来讲,无论坐标在哪里,返回的计算因数都是九分之一。一般这部分称为核(kernel),或者模版。
f(x,y)同样是个函数,输入坐标,返回坐标位于x,y的像素值。以上面的例子来讲,就是像素P或者是其周围的一圈像素值。
公式表达的就是计算过程将每一对s和t产生的坐标取出的计算因数和像素值相乘然后累加。这个过程我们称为相关。
卷积于此计算过程相同,不同的是计算前需要先将模板倒转180度。
比如对于一个3x3的模板,其位置和计算因数的关系是:
那倒转后为:
对于均值滤波,就是用相关或者卷积的方式得到一个新的像素值。
所以对于卷积,其计算可以用下列公式来描述。
网络上常见一个动图,对像素的逐个计算过程描述的非常清晰:
6.3软件实现
我们用Lenna的照片做例子。