图象平滑的主要目的是减少图像噪声
图像噪声来自多方面,常见的噪声有以下几种:
加性噪声、乘性噪声、量化噪声、椒盐噪声
减少噪声的方法可以在空间域或是在频率域
在空间域,基本方法是求像素的平均值或中值
在频率域,运用的是低通滤波技术
在这里我们只讲空间域的图象平滑。频率域以后有机会再讲
空间域的各种滤波器虽然形状不同,但在空间域实现图像滤波的方法是相似的。
都是利用模板卷积,即将图像模板下的像素与模板系数的乘积求和操作。
我们先来看3×3的模板:
我们先来看看领域平均法:
常用的平滑掩模算子有
我们写程序来实现:
importcvdefFilter(image,array):
w=image.width
h=image.height
size=(w,h)
iFilter=cv.CreateImage(size,8,1)foriinrange(h):forjinrange(w):ifiin[0,h-1]orjin[0,w-1]:
iFilter[i,j]=image[i,j]else:
a=[0]*9forkinrange(3):forlinrange(3):
a[k*3+l]=image[i-1+k,j-1+l]
sum=0forminrange(