openCv-图像平滑处理(处理图像噪音点)

这是一张带有噪音点的图像,要对这张图片进行平滑处理
在这里插入图片描述

  1. cv2.blur(均值滤波)
  2. cv2.boxfilter(方框滤波)
  3. cv2.Guassiannblur(进行高斯滤波)
  4. cv2.medianBlur(进行中值滤波)

均值滤波

  1. cv2.blur(img, (3, 3)) 进行均值滤波
    参数说明:img表示输入的图片, (3, 3) 表示进行均值滤波的方框大小

方框滤波

  1. cv2.boxfilter(img, -1, (3, 3), normalize=True) 表示进行方框滤波,
    参数说明当normalize=True时,与均值滤波结果相同, normalize=False,表示对加和后的结果不进行平均操作,大于255的使用255表示

高斯滤波

  1. cv2.Guassianblur(img, (3, 3), 1) 表示进行高斯滤波, 注:高斯分布就是正态分布
    参数说明: 1表示σ, x表示与当前值得距离,计算出的G(x)表示权重值

中值滤波(处理噪音点效果最好)

  1. cv2.medianBlur(img, 3) #中值滤波,相当于将9个值进行排序,取中值作为当前值
    参数说明:img表示当前的图片,3表示当前的方框尺寸
import cv2
import numpy as np

# 图片中存在一些噪音点
img = cv2.imread('./xing.jpg')
cv2.imshow('original', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

#1. cv2.blur 使用均值滤波,即当对一个值进行滤波时,使用当前值与周围8个值之和,取平均做为当前值
box = cv2.blur(img, (3, 3))
cv2.imshow('mean', box)
cv2.waitKey(0)
cv2.destroyAllWindows()

#2. cv2.boxFilter 表示进行方框滤波   本质和均值滤波一样
box_1 = cv2.boxFilter(img, -1, (3, 3), normalize=True)
cv2.imshow('box', box_1)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 当normalize=False 表示对加和后的9个点,不进行求平均的操作,如果加和后的值大于255,使用255表示
box_2 = cv2.boxFilter(img, -1, (3, 3), normalize=False)
cv2.imshow('box_1', box_2)
cv2.waitKey(0)
cv2.destroyAllWindows()

#3. cv2.GaussianBlur 根据高斯的距离对周围的点进行加权处理求值
gaussian = cv2.GaussianBlur(img, (5, 5), 1)
cv2.imshow('gaussian', gaussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

#4. cv2.medianBlur #将9个数据从小到大排列,取中间值作为当前值     注:对噪音点处理效果最好
median = cv2.medianBlur(img, 3)
cv2.imshow('median', median)
cv2.waitKey(0)
cv2.destroyAllWindows()


# 做一个合并显示
imags = np.hstack((box, gaussian, median))
cv2.imshow('all', imags)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值