Appliquer un filtre de Gauss à une image avec python

Pour appliquer un filtre de Gauss à une image il existe dans le module scipy de python la fonction: gaussian_filter. Exemple d'utilisation:

Appliquer un filtre de Gauss à une image avec python (exemple 1)
Appliquer un filtre de Gauss à une image avec python (exemple 1)

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import scipy.ndimage
import scipy

img = scipy.misc.lena()

print img.shape

img_modified = scipy.ndimage.filters.gaussian_filter(img, sigma=3.0)

print img_modified.max(), img_modified.min()
print img_modified.shape

plt.imshow(img_modified[:,:], cmap = plt.get_cmap('gray'), \
           vmin=img_modified.min(),vmax=img_modified.max())
plt.colorbar()
plt.savefig("GaussianFilter1.png")

Autre exemple en utilisant une image importée: lena_grayscale.png. Note: toujours vérifier le format de l'image avant de faire des opérations quelconques sur celle-ci (par exemple ici: img.shape donne (512, 512, 4): 4 pour 3*RGB + 1 alpha (transparence), ici l'image est en niveau de gris => R=G=B)

lena_grayscale.png
lena_grayscale.png

Appliquer un filtre de Gauss à une image avec python (exemple 2)
Appliquer un filtre de Gauss à une image avec python (exemple 2)

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.image as mpimg

import scipy.ndimage

import scipy

img = mpimg.imread('lena_grayscale.png')

print img.shape

img_modified = scipy.ndimage.gaussian_filter(img, sigma=3.0)

print img_modified.max(), img_modified.min()

    print img_modified.shape

plt.imshow(img_modified[:,:,0], cmap = plt.get_cmap('gray'), \ 
               vmin=img_modified.min(),vmax=img_modified.max())

    plt.colorbar()

    plt.savefig("GaussianFilter2.png")

Note: pour convertir une image RGB en échelle de gris voir l'article suivant: Convertir une image couleur en niveau de gris avec python

Recherches associées

Image

of