python opencv3 滤波器 卷积核
git:https://github.com/linyi0604/Computer-Vision
1 # coding:utf8 2 3 import cv2 4 import numpy as np 5 from scipy import ndimage 6 7 # 3*3 的高通卷积核 8 kernel_3x3 = np.array([ 9 [-1, -1, -1], 10 [-1, 8, -1], 11 [-1, -1, -1] 12 ]) 13 # 5*5 高通卷积核 14 kernel_5x5 = np.array([ 15 [-1, -1, -1, -1, -1], 16 [-1, 1, 2, 1, -1], 17 [-1, 3, 4, 2, -1], 18 [-1, 1, 2, 1, -1], 19 [-1, -1, -1, -1, -1] 20 ]) 21 22 # 按灰度值读入图像 23 img = cv2.imread("../data/mm1.jpg", 0) 24 25 # 进行卷积运算 26 k3 = ndimage.convolve(img, kernel_3x3) 27 k5 = ndimage.convolve(img, kernel_5x5) 28 """ 29 高通滤波器: 根据像素与临近像素的亮度差值来提升像素的亮度 30 """ 31 32 33 # 原图像运用高斯低通滤波器 34 blurred = cv2.GaussianBlur(img, (11, 11), 0) 35 """ 36 低通滤波器: 像素周围亮度小于一个特定值时候,平滑该像素的亮度,主要用于去噪和模糊化 37 高斯滤波器是最常用的模糊滤波器之一,他是一个削弱强度的低通滤波器 38 """ 39 # 原图像减去低通 40 g_hpf = img - blurred 41 42 cv2.imshow("3x3", k3) 43 cv2.imshow("5x5", k5) 44 cv2.imshow("g_hpf", g_hpf) 45 cv2.imshow("origin", img) 46 cv2.waitKey() 47 cv2.destroyAllWindows()