OpenCV与Python之图像滤波

介绍四篇图像平滑方式:

均值滤波

方框滤波

高斯滤波

中值滤波

 

1. 均值滤波

原理:将对应核中的元素求和取平均

命令:img2 = cv2.blur(原始图像,核大小)  #核大小是一个元组

img2 = cv2.blur(img, (7, 7))

OpenCV与Python之图像滤波_第1张图片

 2. 方框滤波

原理:对核中像素值求和(求和很容易导致像素值超过255,所以容易出现白化图像),或者求和取平均

命令:img2 = cv2.boxFilter(原始图像, 目标图像深度, 核大小, normalize属性)

normalize=0表示核内所有元素求和,normalize=1表示均值滤波,默认为均值

img2 = cv2.boxFilter(img, -1, (2, 2), normalize=1)

OpenCV与Python之图像滤波_第2张图片

3. 高斯滤波

原理:在核中根据高斯函数来确定核中像素值的比重,离中心元素越近比重越大,反之越小

命令:dst = cv2.GaussianBlur(src, ksize, sigmaX)   # ksize必须是奇数

# sigmaX:高斯核在x方向的标准差

# sigmaY:高斯核在y方向的标准差(sigmaY=0时,其值自动由sigmaX确定(sigmaY=sigmaX);sigmaY=sigmaX=0时,它们的值将由ksize.width和ksize.height自动确定)

img2 = cv2.GaussianBlur(img, (7,7), 0)

OpenCV与Python之图像滤波_第3张图片

4. 中值滤波

原理:核中像素值的中值作为图像像素值

命令:dst = cv2.medianBlur(src, ksize)   # ksize不是能是元组,就是一个数字

img2 = cv2.medianBlur(img, 7)

OpenCV与Python之图像滤波_第4张图片

你可能感兴趣的:(opencv与python)