数字图像处理(学习笔记)---图像平均(Image Averaging)

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()

处理前:
数字图像处理(学习笔记)---图像平均(Image Averaging)_第1张图片

处理后:
数字图像处理(学习笔记)---图像平均(Image Averaging)_第2张图片

你可能感兴趣的:(数字图像处理,python,图像处理,算法)