赞
踩
平滑 也称 模糊, 是一项简单且使用频率很高的图像处理方法。平滑处理的用途有很多, 但是在本教程中我们仅仅关注它减少噪声的功用。从滤波角度来讲,一般主要的目的都是为了实现对图像噪声的消除,增强图像的效果。
最简单的滤波器, 输出像素值是核窗口内像素值的均值
均值模糊函数blur()
blur(src, ksize, dst=None, anchor=None, borderType=None)。
定义是有5个参数,但最后三个均为none
src:要处理的原图像,ksize: 周围关联的像素的范围。
代码:
def blur_demo(image): # 均值模糊
dst = cv.blur(image,(3,3)) # ksize是卷积核大小3行3列,列数越大模糊越大
cv.imshow("blur_demo",dst)
中值滤波模板就是用卷积框中像素的中值代替中心值,达到去噪声的目的。这个模板一般用于去除椒盐噪声。中值滤波对于这些白点噪声的去除是非常的好的。
前面的滤波器都是用计算得到的一个新值来取代中心像素的值,而中值滤波是用中心像素周围(也可以使他本身)的值来取代他,卷积核的大小也是个奇数。
中值模糊函数medianBlur():
medianBlur(src, ksize, dst=None)。
ksize与blur()函数不同,不是矩阵,而是一个数字,例如为5,就表示了5*5方阵
代码:
def median_blur_demo(image): # 中值模糊,对于椒盐噪声的去噪效果好,去掉图片中的一些黑点等
dst = cv.medianBlur(image,5) # ksize是卷积核大小1行3列,列数越大模糊越大
cv.imshow("median_blur_demo",dst)
代码:
def Gaussian_demo(image):
dst = cv.GaussianBlur(image, (5, 5), 15)
cv.imshow("GaussianBlur", dst)
def box_demo(image):
dst = cv.boxFilter(image,-1,(5,5),normalize=1)
cv.imshow("box",dst)
定义:bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
d:邻域直径
sigmaColor:颜色标准差
sigmaSpace:空间标准差
def shuangbian(image):
src2 = cv.bilateralFilter(image, 25, 50, 25 / 2)
cv.imshow("shuangbian", src2)
原图(加了椒盐噪声之后)
(加噪可参考https://blog.csdn.net/poppyty/article/details/118410338?spm=1001.2014.3001.5501)
均值滤波后:
中值滤波后:
高斯滤波后:
方框滤波后:
双边滤波:
原图(加了高斯噪声后):
(加噪可参考https://blog.csdn.net/poppyty/article/details/118410338?spm=1001.2014.3001.5501)
均值滤波后:
中值滤波后:
高斯滤波后:
方框滤波后:
双边滤波后:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。