import cv2
import numpy as np
def average_pooling(img, G=8):
out = img.copy()
H, W, C = img.shape
Nh = int(H / G)
Nw = int(W / G)
# print(Nh, Nw)
for i in range(Nh):
for j in range(Nw):
for c in range(C):
out[G * i:G * (i + 1), G * j:G * (j + 1), c] = np.mean(
out[G * i: G * (i + 1), G * j: G * (j + 1), c]).astype(
np.int)
return out
img = cv2.imread('lena.jpg')
out = average_pooling(img)
print(out.shape)
cv2.imshow('result', out)
cv2.waitKey(0)
cv2.destroyAllWindows()
核心:
out[G * i:G * (i + 1), G * j:G * (j + 1), c] = np.mean(out[G * i: G * (i + 1), G * j: G * (j + 1), c]).astype(np.int)