[opencv]图像处理-均值滤波/方框滤波/高斯滤波/中值滤波

1.代码:

import cv2
import matplotlib.pyplot as plt
import numpy as np

# 原图
img = cv2.imread('E:/img/4.jpg')

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 均值滤波
# 简单的平均卷积操作
blur=cv2.blur(img,(3,3))

cv2.imshow('blur',blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 方框滤波
# 基本和均值一样,可以选择归一化
box=cv2.boxFilter(img,-1,(3,3),normalize=True)

cv2.imshow('box',box)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 高斯滤波
# 高斯模糊的卷积
aussian=cv2.GaussianBlur(img,(5,5),1)

cv2.imshow('aussian',aussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 中值滤波
# 利用中值替换
median = cv2.medianBlur(img,5)

cv2.imshow('median',median)
cv2.waitKey(0)
cv2.destroyAllWindows()

2.效果

原图:

 均值滤波:

 方框滤波:

 高斯滤波:

 中值滤波:

 各个比较,中值滤波去除噪音的效果较好。

猜你喜欢

转载自www.cnblogs.com/zlc364624/p/12732989.html