数字图像的空域滤波

1. 空域滤波:直接在图像像素上进行的邻域操作,用于图像增强、去噪、边缘检测等。

2. 核心思想:通过卷积核(滤波器)与图像局部区域进行数学运算,改变像素值。

3. 常见滤波器及特点

1. 均值滤波(Box Filter)  

    用邻域像素的平均值替换中心像素。  

    核越大,模糊效果越强(如3×3、5×5)。  

# 对图像进行3x3的方框滤波
box_3x3 = cv2.boxFilter(image_rgb, -1, (3, 3))
# 对图像进行5x5的方框滤波
box_5x5 = cv2.boxFilter(image_rgb, -1, (5, 5))
# 对图像进行7x7的方框滤波
box_7x7 = cv2.boxFilter(image_rgb, -1, (7, 7))

2. 高斯滤波(Gaussian Blur)  

    加权平均,中心像素权重最高,边缘递减。  

   保留边缘效果优于均值滤波,适合高斯噪声。  
   高斯模糊基于高斯函数(正态分布函数)来计算图像中每个像素的权重。
   高斯函数是一种钟形曲线,其形状由两个参数控制:均值(μ)和标准差(σ)。
   在高斯模糊中,每个像素的权重由其与中心像素的距离决定,距离越近,权重越大。
   高斯模糊通过对图像中的每个像素及其邻域像素进行加权平均,得到新的像素值,从而实现图像的平滑。

# 对图像进行高斯模糊处理
 gaussian = cv2.GaussianBlur(image_rgb, (5, 5), 0)

3. 中值滤波(Median Filter)  

    取邻域像素的中值,有效去除椒盐噪声。  

    非线性滤波,能保护边缘。  

4. 最大值/最小值滤波  

    最大值滤波(膨胀):扩大亮区域,适合去除黑色噪声。  

    最小值滤波(腐蚀):缩小亮区域,适合去除白色噪声。  

  # 最大值滤波器
    max_filter = cv2.dilate(image_rgb, np.ones((5, 5)))

    # 最小值滤波器
    min_filter = cv2.erode(image_rgb, np.ones((5, 5)))

    # 中值滤波器
    median_filter = cv2.medianBlur(image_rgb, 5)

5. 拉普拉斯滤波(Laplacian)  

    二阶微分算子,突出边缘和细节。  

    对噪声敏感,常与高斯滤波结合(LoG算子)。  

6. Sobel/Roberts算子  

    Sobel:计算水平和垂直方向的梯度,抗噪性较好。  

    Roberts:对角梯度检测,对边缘敏感但易受噪声影响。  

 # 拉普拉斯滤波器
    laplacian = cv2.Laplacian(image_rgb, cv2.CV_64F)

    # Sobel 滤波器(梯度算子)
    sobel_x = cv2.Sobel(image_rgb, cv2.CV_64F, 1, 0, ksize=5)
    sobel_y = cv2.Sobel(image_rgb, cv2.CV_64F, 0, 1, ksize=5)
    sobel_combined = np.sqrt(sobel_x ** 2 + sobel_y ** 2)

    # Roberts 交叉算子
    roberts_x = np.array([[1, 0], [0, -1]], dtype=np.float32)
    roberts_y = np.array([[0, 1], [-1, 0]], dtype=np.float32)
    roberts_combined = cv2.filter2D(image_rgb, -1, roberts_x) + cv2.filter2D(image_rgb, -1, roberts_y)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值