Comment ajouter du texte sur une image avec PIL

Dans cet article on va voir comment ajouter facilement du texte à une figure avec la librairie python sur le traitement d'image [PIL](http://www.pythonware.com/products/pil/). C'est un exercice intéressant et qui peut se révéler pratique dans de nombreuses situations. Notamment dans le cas où on souhaite, par exemple, modifier rapidement des figures générées avec matplotlib sans vouloir relancer l'ensemble des codes. Considérons un exemple simple (réalisé sous MAC: veuillez modifier le chemin ve

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](https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.ndimage.filters.gaussian_filter.html). Exemple d'utilisation: [image:541 size:100 caption: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() prin

Evaluer Pi avec Monte Carlo (python)

Exemple d'algorithme pour évaluer pi en utilisant la méthode de Monte Carlo: [image:540 size:100 caption:Evaluer Pi avec un algorithme de Monte Carlo (python)] from random import uniform import numpy as np import matplotlib.pyplot as plt Radius = 1.0 Nb_Data = 10000 x_list = [] y_list = [] test = [] Nb_Data_In = 0 for i in range(Nb_Data): x = uniform(-Radius,Radius) y = uniform(-Radius,Radius) x_list.append(x) y_list.append(y) if x**2+y**2 > Radius**2: test.append(0

Calculer l'information mutuelle avec python

Exemple de comment calculer l'information mutuelle en passant par python. (l'objectif ici est de développer un filtre pour sélectionner un ensemble de caractéristiques dans le cadre de l'apprentissage automatique voir: [An Introduction to Variable and Feature Selection](http://www.jmlr.org/papers/volume3/guyon03a/guyon03a.pdf)). Note: le module python scikit learn permet aussi de calculer l;information mutuelle ([voir](http://scikit-learn.org/stable/modules/generated/sklearn.metrics.mutual_info_

Comment retourner / inverser verticalement une image en python ?

Exemples de comment retourner / inverser une image avec numpy sous python: [TOC] ### Obtenir une image retournée avec pillow Pour retourner une image avec pillow une solution est d'utiliser la fonction [rotate()](https://pillow.readthedocs.io/en/3.1.x/reference/Image.html), exemple: from PIL import Image im = Image.open("eiffel_tower.jpg") im = im.rotate(180) im.save("eiffel_tower_fliped_vertically.jpg") [images:eiffel-tower;eiffel-tower-fliped-vertically dim:1*2 size

Permuter deux lignes d'une matrice avec numpy sous python

Exemple de comment permuter deux lignes d'une matrice avec numpy sous python (on cherche ici à permuter les lignes d'indice 1 et 2 de la matrice M): >>> import numpy as np >>> M = np.arange(20).reshape(4,5) >>> M array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) >>> T = M[1,:].copy() >>> M[1,:] = M[2,:] >>> M[2,:] = T >>> M array([[ 0, 1, 2, 3, 4], [10, 11, 12, 13, 14],

Remplacer des éléments d'une matrice avec numpy

Avec numpy il existe plusieurs possibilités pour changer les éléments d'une matrice. Supposons par exemple que l'on veuille remplacer les éléments strictement plus grand que 5 par -1 de la matrice M, dans ce cas il suffit d'utiliser la syntaxe suivante M[M > 5 ] = -1, illustration: >>> import numpy as np >>> M = np.arange(10) >>> M array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> M[M > 5 ] = -1 >>> M array([ 0, 1, 2, 3, 4, 5, -1, -1, -1, -1]) Maintenant

Supprimer une ligne d'un matrice avec numpy sous python

Avec Numpy il existe plusieurs façons de supprimer une ou plusieurs lignes d'une matrice. Le plus simple est d'utiliser la fonction [delete](http://docs.scipy.org/doc/numpy/reference/generated/numpy.delete.html), illustration: >>> import numpy as np >>> Mi = np.array([[1, 2, 3], [4, 100, 6], [100,1,2], [12, 100, 50]]) >>> print Mi [[ 1 2 3] [ 4 100 6] [100 1 2] [ 12 100 50]] >>> print Mi.shape (4, 3) >>> M = np.delete(Mi, (2), axis=0)

SPLOM graphique avec Matplotlib

Dans cet article on va voir un exemple de graphique SPLOM (Scatter Plot Matrices) réalisé avec Matplotlib. Les graphiques SPLOM sont utilisés en statistique descriptive et également dans le domaine de l'apprentissage automatique (ou machine learning) pour la sélection de caractéristiques. Dans cet exemple (SPLOM de taille (2,2) pour deux caractéristiques: x1 et x2 avec deux classes notées c1 et c2), un premier script python trace tous les éléments de la matrice qui sont donc ici au nombre de 4 (

Ajouter une bordure autour d'une image avec PIL

Avec le module PIL de python qui permet de travailler avec des images, il est possible de rajouter une bordure, illustration avec un simple script intitulé ici "PIL_Add_Pad.py" [image:527 size:100 caption:Fig.1: Ajouter une bordure autour d'une image avec PIL (image initiale)] [image:528 size:100 caption:Fig.2: Ajouter une bordure autour d'une image avec PIL (image modifiée)] from PIL import Image print "Nom de l'image:", ImageName = raw_input() im = Image.open(ImageName) im_size

Effacer une partie d'une image Matplotlib avec PIL ?

Exemple d'utilisation de [PIL](http://www.pythonware.com/products/pil/) pour effacer la colormap d'une figure réalisée avec Maptlotlib (Note: la figure en sortie conserve sa dimension initiale). [image:402 size:100 caption:input.png] [image:403 size:100 caption:output.png] import Image im = Image.open("input.png") #Can be many different formats. pix = im.load() print im.size #Get the width and hight of the image for iterating over x = 10 y = 10 x_ll = 1026 x = x_l

Déterminer l'adresse IP d'un site depuis son nom de domaine (DNS) avec python

Avec python, il est possible de déterminer l'adresse IP d'un site depuis son nom de domaine (DNS) en utilisant le module [socket](https://docs.python.org/2/library/socket.html) de python, illustration: >>> import socket >>> socket.gethostbyname('www.wikipedia.org') '208.80.154.224 >>> socket.gethostbyname('openclassrooms.com') '162.159.247.194' ### Recherches associées Liens | Site ------------- | ------------- [socket — Low-level networking interface](https://docs.python

Comment tracer une ligne pointillée avec matplotlib

Exemples de comment tracer une ligne pointillée avec matplotlib: [TOC] ### Tracer une ligne pointillée Avec matplotlib il est possible de tracer des lignes en pointillée en ajoutant l'argument '--' ou ':' ou '-:', exemple: import matplotlib.pyplot as plt x = [1,10] y = [3,6] plt.plot(x,y,'--') plt.savefig('DashedLine_01.png') plt.show() [image:524 size:50 caption:Tracer une ligne en pointillée avec matplotlib (avec l'argument '--')] import matplotlib.pyplot a

Arrondir les éléments d'une matrice avec numpy sous python

Pour arrondir les éléments d'une matrice avec numpy il existe la fonction [around](http://docs.scipy.org/doc/numpy/reference/generated/numpy.around.html#numpy.around), exemple: >>> import numpy as np >>> A = np.array((0.4, 1.6, 2.1, -0.7, 0.9)) >>> np.around(A) array([ 0., 2., 2., -1., 1.]) On peut aussi imposer le nombre de chiffres après la virgule en utilisant l'argument 'decimals' : >>> A = np.array((0.04, 1.06, 2.1, -0.7, 0.09)) >>> np.around(A,

Créer une image de couleur quelconque avec PIL sous python

Avec PIL on peut facilement créer une image avec un background de couleur quelconque, illustration: >>> from PIL import Image >>> new_im = Image.new('RGB', (100,200)) >>> new_im.save("MonImage.png", "PNG") ici l'image (codée avec le code RGB) va être de taille (100,200) et par défaut la couleur de fond (background) est noire. Pour avoir une image avec un fond de couleur donné il faut donner en argument le code RGB de la couleur (voir: [RGB Color Codes Chart](http://www.rapidtables

Comment transformer une liste en matrice sous python ?

Sous python vous pouvez facilement transformer une liste de nombres en matrice en passant par la fonction numpy: [asarray()](http://docs.scipy.org/doc/numpy/reference/generated/numpy.asarray.html): illustration: >>> l = [4,1,7,3,2] >>> type(l) <type 'list'> >>> import numpy as np >>> A = np.asarray(l) >>> A array([4, 1, 7, 3, 2]) >>> type(A) <type 'numpy.ndarray'> >>> len(l) 5 >>> A.shape (5,) >>> A.dtype dtype('int32')

Comment tracer un simple histogramme avec matplotlib de python ?

Exemple de comment tracer rapidement un histogramme avec matplotlib à partir d'un ensemble de données: [TOC] ### Tracer un simple histogramme avec matplotlib Pour tracer un histogramme (Note: ne pas confondre [histogramme](http://fr.wikipedia.org/wiki/Histogramme) et [diagramme en bâtons](http://en.wikipedia.org/wiki/Bar_chart)) avec matplotlib il existe la fonction [hist()](http://matplotlib.org/1.3.1/api/pyplot_api.html#matplotlib.pyplot.hist) du module pyplot, exemple: [image:522

Changer l'intervalle des x ou des y d'une figure matplotlib

Avec matplotlib vous pouvez facilement changer l'intervalle des x [xmin,xmax] et des y [ymin,ymax] en utilisant [xlim](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xlim) et [ylim](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.ylim) respectivement, illustration: [image:521 size:100 caption:Changer l'intervalle des x ou des y d'une figure matplotlib] import matplotlib.pyplot as plt x = [1,2,3,4,5,6,7,8,9] y = [10,9,8,7,6,5,4,3,2] plt.scatter(x,y,s=100) p

Exécuter une simple commande externe avec python

Avec python il est possible d'executer une simple commande externe en utilisant la fonction [system()](https://docs.python.org/2/library/os.html#os.system) du module os, comme dans cet exemple >>> import os >>> os.system('ls -l') total 8 drwxr-xr-x 6 toto staff 204 Oct 27 20:17 HomeWork drwxr-xr-x 42 toto staff 1428 Nov 22 11:26 WorkSpace drwxr-xr-x 7 toto staff 238 Nov 11 18:41 Desktop drwxr-xr-x 22 toto staff 748 Nov 17 19:03 Documents 0 >

Rotation des labels des axes d'une figure matplotlib

Avec matplotlib il est possible de tourner les labels correspondant aux axes d'une figure en utilisant [xticks](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xticks) et/ou [yticks](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.yticks) avec l'argument "rotation". Exemple avec [image:519 size:100 caption:Rotation des labels sur les axes d'une figure matplotlib (exemple 1)] import matplotlib.pyplot as plt x = [1,2,3,4,5,6,7,8,9] y = [10,9,8,7,6,5,4,3,2] plt

Comment définir une échelle de couleur discrète pour imshow sous matplotlib ?

> Avec matplotlib il est possible de définir une échelle de couleur discrète pour imshow, illustration: [image:516 size:100 caption:Définir une échelle de couleur discrète pour imshow sous matplotlib (1/3)] from matplotlib import mpl,pyplot import numpy as np Data = np.random.rand(100,100)*100 cmap = mpl.colors.ListedColormap(['blue','black','red']) bounds=[0,25,75,100] norm = mpl.colors.BoundaryNorm(bounds, cmap.N) img = pyplot.imshow(Data,interpolation='nearest', cmap = cmap,

Modifier la valeur d'une colonne avec SQlite et python

Pour mettre-à-jour la valeur d'une colonne avec sqlite il faut utiliser la commande Sqlite: [UPDATE](http://www.tutorialspoint.com/sqlite/sqlite_update_query.htm): UPDATE {NomTable} SET {NomColonne} = {Valeur} WHERE {NomColonne} = {Valeur} En reprenant l'exemple de [Créer une base de données et une table avec sqlite3 de python](http://www.science-emergence.com/Python/PythonFAQ/CreateDataBaseTablePythonSqlite3/), voici un exemple simple sur comment modifier la valeur d'une colonne donnée av

Ajouter une colonne à une table existante avec sqlite et python

> Pour ajouter une colonne à une table existante avec sqlite il faut utiliser la commande Sqlite: [ALTER TABLE](http://www.tutorialspoint.com/sqlite/sqlite_alter_command.htm): ALTER TABLE NomTable ADD COLUMN NomNouvelleColonne ColonneType > En reprenant l'exemple de [Créer une base de données et une table avec sqlite3 de python](http://www.science-emergence.com/Python/PythonFAQ/CreateDataBaseTablePythonSqlite3/), voici un exemple simple de modification d'une table en passant par python et

Accents qui ne s'affichent pas correctement dans ma page HTML

> Si vous n'avez pas les accents qui s'affichent correctement dans votre page HTML, comme dans cet exemple qui va donner l'image ci-contre: [image:512 size:100 caption:Accents qui ne s'affichent pas correctement dans ma page HTML (1/2)] <!DOCTYPE html> <html> <body> Téléchargement </body> </html> > c'est que vous avez oublié la balise <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> > exemple qui marche correctement: [image:513 size:100 caption:Accents

Animer une barre de progression avec JQuery

> Avec [JQuery](http://jquery.com/) on peut rapidement animer une barre de progression. Pour cela, rappelons tout d'abord qu'avec HTML5 on peut facilement créer une barre de progression comme ceci: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <progress max="100" value="60"> <strong>Téléchargement: 60%</strong> </progress> </body> </html> > Il suffit alors d'animer celle-ci en passant par JQuery comme dans cet e