python
# 高斯模糊处理(降噪)
# 参数1: 原始图像
# 参数2: 高斯核尺寸(宽,高,必须为正奇数)
# 其他模糊方法:
# - cv.blur(): 均值模糊
# - cv.medianBlur(): 中值模糊
# - cv.bilateralFilter(): 双边滤波
blur = cv.GaussianBlur(img, (7,7), cv.BORDER_DEFAULT)
在 OpenCV 的 cv.GaussianBlur() 函数中,第三个参数 borderType 用于指定图像边界处理方式。
- cv.BORDER_DEFAULT(默认值)
- 对边界像素进行镜像反射(如 BORDER_REFLECT_101),适合大多数场景。
- 例:边界像素序列 [1,2,3,4] 处理为 [...3,2,1,2,3,4,3,2...]。
- cv.BORDER_CONSTANT
- 使用恒定值填充边界(默认黑色)。
- 可通过 value 参数自定义颜色(如 value=(255,0,0) 填充蓝色)。
- cv.BORDER_REPLICATE
- 复制边界像素:直接延伸最边缘的像素值。
- 例:边界序列 [1,2,3,4] 处理为 [...1,1,1,2,3,4,4,4...]。
- cv.BORDER_REFLECT
- 完全镜像反射:对称复制边界像素(不含边缘像素)。
- 例:序列 [1,2,3,4] 处理为 [...2,1,2,3,4,3,2...]。
- cv.BORDER_REFLECT_101
- 改进版镜像反射(与 BORDER_DEFAULT等效):对称复制时包含边缘像素。
- 例:序列 [1,2,3,4] 处理为 [...3,2,1,2,3,4,3,2...]。
- cv.BORDER_WRAP
- 环绕填充:重复整个图像像素模式。
- 例:序列 [1,2,3,4] 处理为 [...3,4,1,2,3,4,1,2...]。
选择建议:
- 通用场景:优先使用 cv.BORDER_DEFAULT(镜像反射),避免边界伪影。
- 需透明背景:用 cv.BORDER_CONSTANT + 自定义 value参数。
- 保留边缘细节:cv.BORDER_REPLICATE 适合纹理分析(如工业检测)。
- 特殊需求:环绕填充(BORDER_WRAP)适用于周期性图案(如纹理合成)。