1、图像平均
'''
图像中每个像素点的值与其旁边的像素点的值比较接近。这很显然。因为图像是现实世界
的反映。我们现实世界是连续的,除了对象边界外,每个对象反映在图像中,其覆盖的
区域亮度都比较近似。
'''
#图像平均Image Averaging
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import math
def Averaging(img):
img_H,img_W,_=img.shape
retimg=np.zeros((img_H,img_W,3),dtype=np.uint8)
for dstX in range(1,img_H-1):
for dstY in range(1,img_W-1):
#平均值average必须初始化为数组,直接赋值为0后续叠加将导致错误
average=np.array([0,0,0])
for i in [-1,0,1]:
for j in [-1,0,1]:
average+=img[dstX+i,dstY+j]
retimg[dstX,dstY]=average//9
return retimg
im=Image.open('ImageAveraging.jpg')
im_array=np.array(im)
image1 = Averaging(im_array)
image1 = Image.fromarray(image1.astype('uint8')).convert('RGB')
image1.show()
处理前:
处理后: