Essayez d'utiliser Pillow sur iPython (partie 3)

Flux de travail d'oreiller (3)

  1. Chargez l'image avec Image.open
  2. Convertissez l'image en échelle de gris
  3. Gonyo Gonyo l'image
  4. Enregistrez l'image modifiée avec Image.save

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

lena.jpg

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)

gray_lena.jpg

Eh bien, cette fois c'est du filtrage

Filtre intégré

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)

blur-lena.png

python


#Extraction de contour
pl_img = np.array(gray_img.filter(ImageFilter.CONTOUR)); plt.imshow(pl_img, cmap = cm.Greys_r)

contour-lena.png

python


#Gaufrage
pl_img = np.array(filter_img = gray_img.filter(ImageFilter.EMBOSS)); plt.imshow(pl_img, cmap = cm.Greys_r)

emboss-lena.png

python


#Filtre minimum
pl_img = np.array(gray_img.filter(ImageFilter.MinFilter(5))); plt.imshow(pl_img, cmap = cm.Greys_r)

minf-lena.png

Propre filtre

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)

filter01-lena.png

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)

filter02-lena.png

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)

filter03-lena.png

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

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

filter05-lena.png

↓ 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

Essayez d'utiliser Pillow sur iPython (partie 1)
Essayez d'utiliser Pillow sur iPython (partie 2)
Essayez d'utiliser Pillow sur iPython (partie 3)
Essayez d'utiliser OpenCV sur Windows
Essayez d'utiliser SQLAlchemy + MySQL (partie 1)
Essayez d'utiliser SQLAlchemy + MySQL (partie 2)
Essayez d'utiliser ArUco avec Raspberry Pi
Essayez d'utiliser Bash sur Windows 10 2 (installation de TensorFlow)
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Essayez d'utiliser Cookiecutter
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser scipy
Essayez d'utiliser pandas.DataFrame
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
Analyse et visualisation de graphes sur IPython Notebook à l'aide de Cytoscape / cyREST et py2cytoscape Partie 1
Essayez d'utiliser le code QR avec Raspberry Pi
Python: essayez d'utiliser l'interface utilisateur sur Pythonista 3 sur iPad
Essayez d'utiliser le framework Web Python Tornado Partie 1
Faire des prédictions en utilisant la régression sur des données réelles ~ part1
Essayez d'utiliser le framework Web Python Tornado Partie 2
Visualisez les données réseau à partir d'IPython Notebook à l'aide de Cytoscape Partie 1
Essayez d'utiliser virtualenv (virtualenvwrapper)
Essayez d'utiliser E-Cell 4 sur Windows 7 ou Mac OS X
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
J'ai essayé d'utiliser Ipython
Essayez d'utiliser virtualenv maintenant
Essayez d'utiliser Django templates.html
[Kaggle] Essayez d'utiliser LGBM
Essayez d'utiliser l'analyseur de flux de Python.
Essayez d'utiliser Tkinter de Python
Essayez FEniCS sur Windows!
Essayez Poerty sur Windows
Remarques sur l'utilisation d'Alembic
Essayez d'utiliser Tweepy [Python2.7]
Essayez deepdream sur Mac
Essayez d'utiliser collate_fn de Pytorch
Essayez d'utiliser PythonTex avec Texpad.
Essayez la programmation Linux normale, partie 7
[Python] Essayez d'utiliser le canevas de Tkinter
OpenPose sur MacBook Pro Partie 2
Essayez d'utiliser l'image Docker de Jupyter
Essayez d'utiliser scikit-learn (1) - Clustering K par méthode moyenne
Rendre iPython disponible sur OSGeo4W
Essayez d'utiliser matplotlib avec PyCharm
Essayez d'utiliser Azure Logic Apps
Essayez d'utiliser Kubernetes Client -Python-
Essayez d'utiliser l'API Twitter
Essayez la programmation Linux normale, partie 2
[Django] Remarques sur l'utilisation de django-debug-toolbar
Affichage des chaînes sur le notebook IPython
Essayez d'utiliser Jupyter Notebook de manière dynamique
Essayez la programmation Linux normale, partie 3
Essayez «100 coups sur la science des données» ①
Essayez d'utiliser AWS SageMaker Studio
Essayez de traduire un PDF anglais, partie 1