4.6 基本滤波

写在前面:

1.低通滤波平滑图像

低通滤波可以简单的认为:设定一个频率点,当信号频率高于这个频率时不能通过,在数字信号中,这个频率点也就是截止频率,当频域高于这个截止频率时,则全部赋值为0。因为在这一处理过程中,让低频信号全部通过,所以称为低通滤波。其目的可以理解为:降低图像的变化率。

1.1 blur滤波

 在Opencv中,可以通过使用blur函数进行低通滤波:
result = cv2.blur(image,(5,5));

其中 result返回时处理后的图像。blur函数第一个参数为待处理图像,参数二则是设置滤波器的大小。

1.2 boxfilter

在Opencv可以通过boxfilter函数进行:
result1 = cv2.boxFilter(img, -1, (5, 5))

其中第二个参数的-1表示输出图像使用的深度与输入图像相同

  1. 高斯模糊

    在某些情况下,需要对一个像素的周围的像素给予更多的重视。因此,可通过分配权重来重新计算这些周围点的值。这可通过高斯函数(钟形函数,即喇叭形数)的权重方案来解决。

(参考理解:参考1 参考二

在Opencv中,可以通过GaussianBlur函数进行处理:

gaussianResult = cv2.GaussianBlur(img,(5,5),1.5)

区别:

低通滤波与高斯滤波的不同之处在于:低通滤波中,滤波器中每个像素的权重是相同的,即滤波器是线性的。而高斯滤波器中像素的权重与其距中心像素的距离成比例。

代码(上述三种滤波方式):

#coding=utf-8
import cv2
img = cv2.imread("G:/python project/lena.jpg",0)
result = cv2.blur(img, (5,5))
result1 = cv2.boxFilter(img, -1, (5, 5))
gaussianResult = cv2.GaussianBlur(img,(5,5),1.5)
cv2.imshow("Origin", img)
cv2.imshow("Blur", result)
cv2.imshow("BoxFilter", result1)
cv2.imshow("GaussianResult", gaussianResult)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

3.中值滤波

无论是直接获取的灰度图像,还是由彩色图像转换得到的灰度图像,里面都有噪声的存在,噪声对图像质量有很大的影响。进行中值滤波不仅可以去除孤点噪声,而且可以保持图像的边缘特性,不会使图像产生显著的模糊,比较适合于实验中的人脸图像。

中值滤波是一种非线性的信号处理方法,因此中值滤波器也就是一种非线性的滤波器。在一定条件下,其可以克服线性滤波器处理图像细节模糊的问题,而且它对滤除脉冲干扰和图像扫描噪声非常有效,但是,对点、线、尖顶等细节较多的图像,则会引起图像信息的丢失。中值滤波器最先被应用于一维信号的处理中,后来被人们引用到二维图像的处理中来。

中位值滤波是种非线性滤波器,尤其是对椒盐现象去除特别有用。在Opencv中,通过medianBlur函数进行处理。

在原图像没有椒盐,所以为了校验效果,将使用前面介绍的方法先生成椒盐然后进行处理。代码:

#coding=utf-8
import cv2
import numpy as np  

def salt(img, n):  
    for k in range(n):  
        i = int(np.random.random() * img.shape[1]);  
        j = int(np.random.random() * img.shape[0]);  
        if img.ndim == 2:   
            img[j,i] = 255  
        elif img.ndim == 3:   
            img[j,i,0]= 255  
            img[j,i,1]= 255  
            img[j,i,2]= 255  
    return img 
img = cv2.imread("G:/python project/lena.jpg",0)
result = salt(img, 500)
median = cv2.medianBlur(result, 5)
cv2.imshow("Salt", result)
cv2.imshow("Median", median)
cv2.waitKey(0)
cv2.destroyAllWindows()

原创自:http://blog.csdn.net/sunny2038/article/details/9137759(作者:sunny2038)

results matching ""

    No results matching ""