高斯平滑 高斯模糊 高斯滤波器,python 实现

参考 c++版本 http://blog.csdn.net/hhygcy/article/details/4329056/


import cv2
import numpy as np
from scipy import ndimage

filename='test.jpg'
img1=cv2.imread(filename)
gray=cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY) #灰色
cv2.imwrite('gray.jpg',gray) 

kernel_3x3 = np.array([
[1,2,1],
[2,4,2],
[1,2,1]
])

kernel_5x5 = np.array([
[1, 4, 7, 4, 1],
[4, 16, 26, 16, 4],
[7, 26, 41, 26, 7],
[4, 16, 26, 16, 4],
[1, 4, 7, 4, 1]
])

kernel_3x3 = kernel_3x3/kernel_3x3.sum() #加权平均
kernel_5x5 = kernel_5x5/kernel_5x5.sum() #加权平均

img = cv2.imread("test.jpg",0)

k3 = ndimage.convolve(img,kernel_3x3)
k5 = ndimage.convolve(img,kernel_5x5)

cv2.imshow("3x3",k3)
cv2.imshow("5x5",k5)
cv2.imwrite('k3.jpg',k3)
cv2.imwrite('k5.jpg',k5)
cv2.waitKey()

原图

高斯平滑 高斯模糊 高斯滤波器,python 实现_第1张图片

3x3

高斯平滑 高斯模糊 高斯滤波器,python 实现_第2张图片

5x5

高斯平滑 高斯模糊 高斯滤波器,python 实现_第3张图片


你可能感兴趣的:(opencv)