Advertisement

[Python]图像处理——平滑处理

阅读量:

平滑处理,利用N x N (例如3x3)矩阵对原图像的矩阵进行遍历,计算获取数值,生成新的矩阵图像。

编写程序如下:

复制代码
    #平滑处理 programmed by changhao
    from PIL import Image
    import matplotlib.pyplot as plt # plt 用于显示图片
    import numpy as np
    
    im = Image.open('picture1.png') #读取图片
    #im.show()
    im = im.convert('L')#convert转化mode,此处转化为灰度图
    data = np.array(im)
    [m,n]=data.shape
    
    #建立等大小空矩阵
    new_data = np.zeros((m,n))
    
    #平滑处理操作
    for i in range(1,m-1):
    for j in range(1,n-1):
        for x in range(-1,2):
            for y in range(-1,2):
                new_data[i,j] = (data[i+x,j+y])/9 + new_data[i,j]
    
    new_im = Image.fromarray(new_data) #data矩阵转化为二维图片
    
    if new_im.mode == 'F':
    new_im = new_im.convert('RGB')
    new_im.save('new_im.png') #保存PIL图片
    
    #画图展示
    plt.subplot(1,2,1)
    plt.imshow(im,cmap='gray')
    plt.axis('off') # 不显示坐标轴
    plt.show()
    
    plt.subplot(1,2,2)
    plt.imshow(new_im,cmap='gray')
    plt.axis('off') # 不显示坐标轴
    plt.show()
    
    
    javascript
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-14/3cm9vMUTYK0Ppw5L84rb2GDBnaZC.png)

全部评论 (0)

还没有任何评论哟~