一、函数简介
1、blur—图像均值平滑滤波
函数原型:blur(src, ksize, dst=None, anchor=None, borderType=None)
src:图像矩阵
ksize:滤波窗口尺寸
2、GaussianBlur—图像高斯平滑滤波
函数原型:GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
src:图像矩阵
ksize:滤波窗口尺寸
sigmaX:标准差
src:图像矩阵
ksize:滤波窗口尺寸
4、bilateralFilter—图像双边滤波
函数原型:bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
src:图像矩阵
d:邻域直径
sigmaColor:颜色标准差
sigmaSpace:空间标准差
二、实例演练
1、图像均值平滑滤波
代码如下:
#encoding:utf-8
import numpy as np
import cv2
image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)
#领域均值滤波
blurred = np.hstack([cv2.blur(image,(3,3)),
cv2.blur(image,(5,5)),
cv2.blur(image,(7,7))
])
cv2.imshow("Averaged",blurred)
cv2.waitKey(0)
结果如下:
原图像:
平画后的图像(从左到右窗口宽度依次为:3、5、7)
2、图像高斯平滑滤波
代码如下:
#encoding:utf-8
import numpy as np
import cv2
image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)
#高斯滤波
blurred = np.hstack([cv2.GaussianBlur(image,(3,3),0),
cv2.GaussianBlur(image,(5,5),0),
cv2.GaussianBlur(image,(7,7),0)
])
cv2.imshow("Gaussian",blurred)
cv2.waitKey(0)
结果如下:
原图像:
平画后的图像(从左到右窗口宽度依次为:3、5、7,标准差均为:0)
3、图像中值滤波
代码如下:
#encoding:utf-8
import numpy as np
import cv2
image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)
#中值滤波
blurred = np.hstack([cv2.medianBlur(image,3),
cv2.medianBlur(image,5),
cv2.medianBlur(image,7)
])
cv2.imshow("Median",blurred)
cv2.waitKey(0)
结果如下:
原图像:
平画后的图像(从左到右窗口宽度依次为:3、5、7)
4、图像双边滤波
代码如下:
#encoding:utf-8
import numpy as np
import cv2
image = cv2.imread("H:\\img\\lena.jpg")
cv2.imshow("Original",image)
cv2.waitKey(0)
#双边滤波
blurred = np.hstack([cv2.bilateralFilter(image,5,21,21),
cv2.bilateralFilter(image,7, 31, 31),
cv2.bilateralFilter(image,9, 41, 41)
])
cv2.imshow("Bilateral",blurred)
cv2.waitKey(0)
结果如下:
原图像:
平画后的图像(相关参数意义,请参考上述函数原型中的解释)