OpenCV 高斯模糊降噪

python 复制代码
# 高斯模糊处理(降噪)
# 参数1: 原始图像
# 参数2: 高斯核尺寸(宽,高,必须为正奇数)
# 其他模糊方法:
#   - cv.blur():             均值模糊
#   - cv.medianBlur():       中值模糊
#   - cv.bilateralFilter():  双边滤波
blur = cv.GaussianBlur(img, (7,7), cv.BORDER_DEFAULT)

在 OpenCV 的 cv.GaussianBlur() 函数中,​​第三个参数 borderType​​ 用于指定图像边界处理方式。

  1. cv.BORDER_DEFAULT(默认值)
  • 对边界像素进行镜像反射(如 BORDER_REFLECT_101),适合大多数场景。
  • 例:边界像素序列 [1,2,3,4] 处理为 [...3,2,1,2,3,4,3,2...]。
  1. cv.BORDER_CONSTANT
  • 使用恒定值填充边界(默认黑色)。
  • 可通过 value 参数自定义颜色(如 value=(255,0,0) 填充蓝色)。
  1. cv.BORDER_REPLICATE
  • 复制边界像素:直接延伸最边缘的像素值。
  • 例:边界序列 [1,2,3,4] 处理为 [...1,1,1,2,3,4,4,4...]。
  1. cv.BORDER_REFLECT
  • 完全镜像反射:对称复制边界像素(不含边缘像素)。
  • 例:序列 [1,2,3,4] 处理为 [...2,1,2,3,4,3,2...]。
  1. cv.BORDER_REFLECT_101
  • 改进版镜像反射(与 BORDER_DEFAULT等效):对称复制时包含边缘像素。
  • 例:序列 [1,2,3,4] 处理为 [...3,2,1,2,3,4,3,2...]。
  1. cv.BORDER_WRAP
  • 环绕填充:重复整个图像像素模式。
  • 例:序列 [1,2,3,4] 处理为 [...3,4,1,2,3,4,1,2...]。

选择建议​​:

  1. 通用场景:优先使用 cv.BORDER_DEFAULT(镜像反射),避免边界伪影。
  2. 需透明背景:用 cv.BORDER_CONSTANT + 自定义 value参数。
  3. 保留边缘细节:cv.BORDER_REPLICATE 适合纹理分析(如工业检测)。
  4. 特殊需求:环绕填充(BORDER_WRAP)适用于周期性图案(如纹理合成)。