一、算数均值
import numpy as np
from cv2 import cv2
def a_mean(img, kernel_size):
G_mean_img = np.zeros(img.shape)
k = int((kernel_size - 1) / 2)
for i in range(img.shape[0]):
for j in range(img.shape[1]):
if i < k or i > (img.shape[0] - k - 1) or j < k or j > (img.shape[1] - k - 1):
G_mean_img[i][j] = img[i][j]
else:
for n in range(kernel_size):
for m in range(kernel_size):
G_mean_img[i][j] += float(1 / (kernel_size * kernel_size) * img[i - k + n][j - k + m])
G_mean_img = np.uint8(G_mean_img)
return G_mean_img
if __name__ == "__main__":
img = cv2.imread('data.jpg', 0)
G_mean_img_3 = a_mean(img, kernel_size=3)
cv2.imshow("source", im