OpenCV(二十五):方盒滤波与均值滤波

滤波的基本概念

滤波的核心思想是:

对每个像素,以其邻域(通常为 k×k 窗口)为基础进行计算,使输出像素值更平滑或者更符合某种特定需求。

线性滤波的一般形式为:

其中 k(i,j) 为滤波核(kernel)。

归一化的意义

  1. 避免数值溢出

卷积核的所有元素之和被缩放到 1,不会把像素变得太大。

  1. 保持图像亮度不改变

例如均值滤波后,亮度不会"变亮"。

  1. 使滤波核有明确的物理意义

例如平均滤波核:

表示每个像素的权重是 1/9。

  1. 让不同大小的滤波窗口输出可比较

3×3、5×5 核都保持统一尺度,不会因为窗口大而输出更大值。

总结:

归一化 = 除以滤波窗口权重之和,使输出像素保持与输入同样的范围和尺度。

在 OpenCV 中:

  • normalize=True → 均值滤波
  • normalize=False → 求区域和(不缩放)

方盒滤波(Box Filter)原理

方盒滤波属于线性滤波的一种,它的滤波核为常数,因此又称 Box Kernel。其基本思想是:

在邻域窗口内对像素值求和,然后乘以一个归一化因子(可选择是否归一化)。

滤波核一般形式为:

若需要归一化,则:

OpenCV 中对应函数为:

python 复制代码
cv2.boxFilter(src, ddepth, ksize, anchor=None,
              normalize=True, borderType=None)

参数说明:

参数 含义
src 输入图像
ddepth 输出类型,-1 最常用
ksize 滤波核大小
anchor 内核中心,默认即可
normalize 是否均值化
borderType 边界处理方式

特点

优点:

  1. 速度快
    内部通过积分图(Integral Image)优化,可实现 O(1) 的均值计算。
  2. 能支持不归一化情况下的求和滤波
    normalize=False 时可用于快速求区域和。
  3. 灵活度高
    可指定目标深度 ddepth(如 CV_16S、CV_32F)。

缺点:

  1. 对边缘模糊明显
    因为所有邻域像素权重相同,不能保留边缘。
  2. 容易产生较大程度的模糊
    比高斯滤波更容易导致图像信息丢失。

均值滤波(Mean Filter / Blur)原理

均值滤波是方盒滤波的特例。其核心思想是:

取邻域窗口内所有像素的平均值作为输出像素。

数学形式:

OpenCV 函数:

复制代码
cv2.blur(src, ksize)

其内部实际上调用的是带 normalize=True 的 boxFilter,因此结果与归一化的 boxFilter 完全一致

特点

优点:

  1. 简单高效,计算速度快
  2. 实现平滑效果明显
  3. 使用最广泛的基础平滑方法

缺点:

  1. 边缘模糊严重
  2. 去噪能力一般
  3. 无法区分噪声与细节信息(容易破坏边缘)

方盒滤波 vs. 均值滤波 对比

项目 方盒滤波(boxFilter) 均值滤波(blur)
本质 区域像素求和(可归一也可不归一) 归一化的 boxFilter
算法 可使用积分图优化 调用 boxFilter(normalize=True)
是否可控制归一化 可以 不可以(默认归一化)
速度 快(本质同 boxFilter)
灵活性 高(支持 ddepth) 较低
常见用途 ROI 求和、快速滤波 普通平滑降噪

示例

python 复制代码
import cv2
import numpy as np

img = cv2.imread('test.jpg')

# 均值滤波
blur_img = cv2.blur(img, (5, 5))

# 方盒滤波(与 blur 等效)
box_img = cv2.boxFilter(img, ddepth=-1, ksize=(5, 5), normalize=True)

# 方盒滤波(不归一:仅求和)
box_sum = cv2.boxFilter(img, ddepth=-1, ksize=(5, 5), normalize=False)

cv2.imshow('original', img)
cv2.imshow('mean blur', blur_img)
cv2.imshow('box filter', box_img)
cv2.imshow('box sum', box_sum)
cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
KG_LLM图谱增强大模型10 分钟前
Palantir 本体论与知识图谱深度分析及实现路径
人工智能·知识图谱
yzx99101312 分钟前
项目名称:灵犀——基于大模型与知识图谱的全栈智慧创作与协同平台
人工智能·知识图谱
RAG专家12 分钟前
【KG²RAG】结合知识图谱解决RAG 文本块孤立问题
人工智能·知识图谱·rag·检索增强生成
小袁进化之路13 分钟前
黎跃春讲AI智能体运营工程师核心知识图谱(2026完整版)
人工智能·知识图谱
CyberwayTech14 分钟前
赛博威线上营销费用管理:咨询+系统,双轮驱动ROI增长
大数据·人工智能
一粒黑子14 分钟前
【实测】GitNexus实测:拖入GitHub链接秒出代码知识图谱,今天涨了857星
人工智能·gpt·安全·ai·大模型·ai编程
chaofan98015 分钟前
GPT-5.5 领衔 Image 2.0:像素级控制时代,AI 绘图告别开盲盒
开发语言·人工智能·python·gpt·自动化·api
秋说16 分钟前
【知识图谱】大模型驱动多模态健康智能问诊深度剖析
人工智能·大模型·知识图谱·同态加密·差分隐私·智慧医疗
User_芊芊君子17 分钟前
【OpenAI 把 AI 玩明白了】:自主推理 + 动态知识图谱,这 4 个技术突破要颠覆行业
java·人工智能·知识图谱