Python3+OpenCV(七):空间域滤波增强



1、空间域平滑滤波

任何一幅原始图像,在其获取和传输等过程中,会受到各种噪声的干扰,使图像模糊,对图像分析不利。为了抑制噪声,改善图像质量所进行的处理称图像平滑或去噪。

(1) 均值滤波器

均值滤波(normalized box filter)就是用其像素点周围像素的平均值代替元像素值,在滤除噪声的同时也会滤掉图像的边缘信息的方法。

但均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。特别是椒盐噪声。

cv2.blur(src, ksize, dst=None, anchor=None, borderType=None)

该函数使用内核将图像平滑化,表示为:
在这里插入图片描述
作用:使用归一化卷积模板模糊图像
src:图像矩阵
ksize:滤波窗口(算子)尺寸
anchor:锚点
borderType:边界扩充类型

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 均值滤波器
# 读取灰度图像 
img = cv2.imread("D:/Study/digital image processing/test/saltLena.bmp",0)
# 模板大虚5*5
blur = cv2.blur(img,(5,5))
plt.subplot(121),plt.imshow(img,'gray')
plt.subplot(122),plt.imshow(blur,'gray')
plt.show()

在这里插入图片描述

(2) 高斯滤波器

高斯滤波是一种线性平滑滤波器,对于服从正态分布的噪声有很好的抑制作用。在实际场景中,我们通常会假定图像包含的噪声为高斯白噪声,所以在许多实际应用的预处理部分,都会采用高斯滤波抑制噪声,如传统车牌识别等。

高斯滤波和均值滤波一样,都是利用一个掩膜和图像进行卷积求解。不同之处在于:均值滤波器的模板系数都是相同的为1,而高斯滤波器的模板系数,则随着距离模板中心的增大而系数减小(服从二维高斯分布)。所以,高斯滤波器相比于均值滤波器对图像个模糊程度较小,更能够保持图像的整体细节。

高斯滤波常见模板如下。
在这里插入图片描述
在这里插入图片描述

cv2.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]])

作用:根据像素距离使用高斯函数生成权重进行滤波
dst:输出图像
src:输入图像
ksize:卷积核的大小
sigmaX:x方向上的标准差
sigmaY:y方向上的标准差
borderType:边界模式,默认为BORDER_DEFAULT

# 高斯滤波器
img = cv2.imread("D:/Study/digital image processing/test/saltLena.bmp",0)
# 若只给了一个sigma则同时视为两轴的sigma,若均为0则根据尺寸自动生成。
dst = cv2.GaussianBlur(img,(5,5),0)

plt.subplot(121),plt.imshow(img,'gray')
plt.subplot(122),plt.imshow(dst,'gray')
plt.show()

在这里插入图片描述
图像平滑通过积分过程使得图像边缘模糊,图像锐化则通过微分使得图像边缘突出、清晰。

2、空间域锐化滤波

锐化处理的主要目的是为了突出图像的边缘信息,增强图像的轮廓特征,以便于人眼的观察和机器的识别。

(1) 梯度锐化法

梯度的定义如下:
在这里插入图片描述
其中:
在这里插入图片描述
梯度的方向就是函数f(x,y)最大变化率的方向。梯度的幅值作为最大变化率大小的度量。
在这里插入图片描述
离散的二维函数f(i,j),可以用有限差分作为梯度的一个近似值。
在这里插入图片描述
为了简化计算,可以用绝对值来近似。
在这里插入图片描述

Roberts算子

采用对角相差的差分法来代替微分,其计算公式如下所示。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值