python
%pylab inline
from PIL import Image,ImageDraw,ImageFont
img = Image.open('work-image/lena.jpg')
pl_img = np.array(img) ; plt.imshow( pl_img ) #afficher
python
#Convertir en échelle de gris
gray_img = img.convert("L")
#Pas l'affichage prévu
pl_img = np.array(gray_img) ; plt.imshow( pl_img ) #afficher
#Afficher les informations du fichier
print('size : ', gray_img.size)
print('format : ', gray_img.format)
print('mode : ', gray_img.mode)
print('palette : ', gray_img.palette)
print('info : ', gray_img.info)
#Je pense que je dois faire ça
import matplotlib.cm as cm
plt.imshow(pl_img, cmap = cm.Greys_r)
Eh bien, cette fois c'est du filtrage
D'abord à partir du filtre intégré
python
from PIL import ImageFilter, ImageOps
python
#Brouiller
pl_img = np.array(gray_img.filter(ImageFilter.BLUR)); plt.imshow(pl_img, cmap = cm.Greys_r)
python
#Extraction de contour
pl_img = np.array(gray_img.filter(ImageFilter.CONTOUR)); plt.imshow(pl_img, cmap = cm.Greys_r)
python
#Gaufrage
pl_img = np.array(filter_img = gray_img.filter(ImageFilter.EMBOSS)); plt.imshow(pl_img, cmap = cm.Greys_r)
python
#Filtre minimum
pl_img = np.array(gray_img.filter(ImageFilter.MinFilter(5))); plt.imshow(pl_img, cmap = cm.Greys_r)
J'écrirai la chose théorique plus tard (Est-ce vraiment écrit?)
python
#Détecter les bords verticaux
flist = [1, 1, 1,
0, 0, 0,
-1, -1, -1]
flt = ImageFilter.Kernel((3, 3), flist, scale=1)
filter_img = gray_img.filter(flt)
pl_img = np.array(filter_img) ; plt.imshow(pl_img, cmap = cm.Greys_r)
python
#Détecte les bords horizontaux
flist = [1, 0, -1,
1, 0, -1,
1, 0, -1]
flt = ImageFilter.Kernel((3, 3), flist, scale=1)
filter_img = gray_img.filter(flt)
pl_img = np.array(filter_img) ; plt.imshow(pl_img, cmap = cm.Greys_r)
python
#4 Proximité Laplacienne
flist = [0, 1, 0,
1, -4, 1,
0, 1, 0]
flt = ImageFilter.Kernel((3, 3), flist, scale=1)
filter_img = gray_img.filter(flt)
pl_img = np.array(filter_img) ; plt.imshow(pl_img, cmap = cm.Greys_r)
python
#8 Laplacien de proximité
flist = [1, 1, 1,
1, -8, 1,
1, 1, 1]
flt = ImageFilter.Kernel((3, 3), flist, scale=1)
filter_img = gray_img.filter(flt)
pl_img = np.array(filter_img) ; plt.imshow(pl_img, cmap = cm.Greys_r)
filter_img.save('work-image/filter05-lena.png')
python
#8 Exemple d'utilisation du laplacien proche
flist = [0.4, 0.4, 0.4,
0.4, -2.2, 0.4,
0.4, 0.4, 0.4]
flt = ImageFilter.Kernel((3, 3), flist, scale=1)
filter_img = gray_img.filter(flt)
pl_img = np.array(filter_img) ; plt.imshow(pl_img, cmap = cm.Greys_r)
↓ J'ai donné un cahier à nbviewer (c'est le principal) nbviewer.ipython.org/github/suto3/git-public/blob/master/python/notebook/Pillow-workflow03.ipynb
↓ Cliquez ici pour l'environnement de travail Construction d'environnement d'oreiller - Environnement virtuel par virtualenv, environnement interactif par iPython --Qiita
Essayez d'utiliser Pillow sur iPython (Partie 1) --Qiita
Essayez d'utiliser Pillow sur iPython (Partie 2) --Qiita
Recommended Posts