import cv2 as cv
import numpy as np
#中值滤波 保留图像的边缘细节 滤波模板的尺寸大小,必须是大于1的奇数,如3、5、7……
def median_blur_demo(image): #中值模糊 对椒盐噪声有很好的去燥效果
dst=cv.medianBlur(image,5)
cv.imshow("median_blue_demo",dst)
#对图像做卷积
def custom_blur_demo(image):
kernel=np.array([[0,-1,0],[-1,5,-1],[0,-1,0]],np.float32)
dst=cv.filter2D(image,-1,kernel=kernel)
cv.imshow("custom_blur_demo",dst)
# np.array=>创建一个卷各核,3行3列,2维
# cv.filter2D =>anchor核的锚点表示一个被滤波的点在核内的位置。 锚点应该处于#核内部。缺省值 (-1,-1) 表示锚点在核中心。
src=cv.imread("D:/2018-07-31 101509.jpg")
cv.imshow("source image",src)
median_blur_demo(src)#中值滤波
custom_blur_demo(src)#自定义滤波
cv.waitKey(0)
cv.destroyAllWindows()
原图效果
中值滤波效果
自定义滤波效果