图像增强与滤波:高斯模糊、中值滤波、直方图均衡化

📂 所属阶段:第一阶段 — 图像处理基石(传统 CV 篇)
🔗 相关章节:OpenCV 快速入门 · 边缘检测与轮廓提取


1. 滤波基础

"""
滤波 = 用卷积核对图像进行卷积操作

卷积核(Kernel):小矩阵,如 3×3、5×5
步骤:
1. 将卷积核放在图像上
2. 计算核内像素的加权和
3. 结果作为中心像素的新值
"""

import cv2
import numpy as np

img = cv2.imread("photo.jpg")

# 高斯模糊
blurred = cv2.GaussianBlur(img, (5, 5), 0)

# 中值滤波
median = cv2.medianBlur(img, 5)

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

cv2.imshow("Original", img)
cv2.imshow("Gaussian Blur", blurred)
cv2.imshow("Median Blur", median)
cv2.waitKey(0)

2. 常见滤波器

滤波器用途优点缺点
高斯模糊平滑、去噪自然、快速可能模糊边缘
中值滤波去除椒盐噪声保留边缘计算量大
双边滤波边缘保留平滑效果好速度慢
形态学腐蚀/膨胀处理二值图需要调参

3. 直方图均衡化

import cv2
import numpy as np

img = cv2.imread("photo.jpg", 0)  # 灰度读取

# 直方图均衡化
equalized = cv2.equalizeHist(img)

# 自适应直方图均衡化(CLAHE)
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
clahe_result = clahe.apply(img)

cv2.imshow("Original", img)
cv2.imshow("Equalized", equalized)
cv2.imshow("CLAHE", clahe_result)
cv2.waitKey(0)

4. 小结

图像增强三大法宝:

1. 高斯模糊:快速去噪
2. 中值滤波:去椒盐噪声
3. 直方图均衡化:提升对比度

实践建议:
- 噪声多 → 中值滤波
- 对比度低 → 直方图均衡化
- 需要快速处理 → 高斯模糊

💡 记住:滤波是 CV 的基础操作,几乎所有高级算法都会用到。


🔗 扩展阅读