Opencv+python(五)过滤器

图像平滑处理

  • 均值滤波
  • 方框滤波
  • 高斯滤波
  • 中值滤波

想要滤波的程度大一些,就需要把核的大小弄大一些;中值滤波和高斯滤波好像处理时稍好

均值滤波

任意一点的像素值,都是周围N*N给像素值的均值
5*5 的模糊程度< 10*10的模糊程度

o=cv2.imread("image\\lenaNoise.png")
r=cv2.blur(o,(5,5))

方框滤波

  • cv2.boxFilter(原始图像,目标图像深度,核大小,normalize属性)
  • 目标图像深度=-1,则深度和原始图像一致
  • normalize属性:是否进行归一化
  • true:就等于均值滤波
  • false:就把核的像素值全部加起来,因为很容易超过255,所以当核的数量比较大时,容易变成全白的图片
r=cv2.boxFilter(o,-1,(5,5),normalize=0)

高斯滤波

让临近的像素具有更高的重要度,对周围像素计算加权平均值,较近的像素具有较大的重要的值

r=cv2.GaussianBlur(o,(3,3),0)
#只能为奇数
sigamaX=0 时,opencv会自己计算

中值滤波

让临近的像素按照大小排列,取排列像素集中于中间位置的值作为中值滤波的值

r=cv2.medianBlur(o,3)
#主要这里ksize必须大于1,而且只是一个数字不是元组

你可能感兴趣的:(opencv,python,计算机视觉)