Logiciels avec interface graphique (GUI) :
Photoshop (Adobe)
Gimp
XnView
Audacity
Ableton
Garage Band (Apple)
Logiciels avec interface en ligne de commande (CLI) :
Quels sont les avantages par rapport à un logiciel (GUI ou CLI) ?
Automatisation : en écrivant des scripts vous pouvez répéter des opérations (filtre, découpe, conversion) sur un grand nombre de fichies sans intervention manuelle (les logiciels peuvent aussi faire du traitement par lot)
Personnalisation : vous avez accès à plus de paramètres pour manipuler les algorithmes (les filtres par exemple) et vous pouvez les combiner à votre guise
Intégration : vous pouvez intégrer des traitements dans une application, un site ou une chaîne de traitement
Quels sont les avantages par rapport à un logiciel (GUI ou CLI) ?
Performance : Python n’est pas réputé pour sa rapidité. Néanmoins un script bien conçu pourra être moins gourmand en ressource que l’utilisation d’un logiciel
Ressources communautaires : vous trouverez beaucoup de documentation ,de tutoriels et d’aide auprès de la communauté d’utilisateur Python
Portabilité : vos scripts Python fonctionneront sur les OS les plus courants (Linux, Mac OS, Windows)
Savoir : programmer vous aidera à appréhender les concepts de traitement du signal et vous vous améliorerez en Python 🐍
Et les inconvénients ?
Un exemple simple de traitement d’image qu’on peut faire avec Python : flouter une partie d’image
from IPython.display import Image, display
image_url = 'https://cesr.univ-tours.fr/medias/photo/cpr-1130x400_1521210968998-jpg'
# une image de https://cesr.univ-tours.fr/centre-detudes-superieures-de-la-renaissance/master-cultures-et-patrimoines-de-la-renaissance
display(Image(url=image_url))
Pour flouter on va utiliser le module Pillow
Pour simplifier on va travailler avec un fichier image et pas une url
# import Pillow library
from PIL import Image, ImageFilter
image = Image.open('../img/CPR_1130x400.jpg') # 'image' est un objet de la classe Image
#display(image)
Une fois en mémoire on peut appliquer le filtre blur sur une partie de l’image (voir la doc, toujours voir la doc)
box = (185, 25, 335, 175) # on définit la partie à flouter avec ses coordonnées (left, top, right, bottom)
region = image.crop(box) # hop on découpe la partie
blurred_region = region.filter(ImageFilter.BoxBlur(10)) # Blur pas Oasis
image.paste(blurred_region, box) # on copie la partie floutée
display(image)
Le langage Python a été créé par Guido Van Rossum en 1991
C’est un langage interprété, de haut niveau, multiplateformes, sous licence libre (voir le code source)
Python | C |
---|---|
1991 | 1972 |
interprété | compilé |
multiplateforme | non |
haut niveau | bas niveau |
typage dynamique | typage statique |
syntaxe lisible et simple à utiliser | syntaxe moins lisible et plus ardue |
pas le plus rapide | parmi les plus rapides |
Le noyau de Python est écrit en C
import this
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
En 2023 Python est indéniablement devenu un langage très populaire, très utilisé et beaucoup enseigné
[https://spectrum.ieee.org/the-top-programming-languages-2023](https://spectrum.ieee.org/the-top-programming-languages-2023)
Ce qui a fait le succès de Python, amha, c’est la qualité et la diversité des bibliothèques (libraries) et des packages de la communauté Open Source
En particulier dans les domaines suivants :
!python -m spacy download fr_core_news_md
import spacy
from spacy import displacy
nlp = spacy.load('fr_core_news_md')
doc = nlp("Emmanuel Macron a dénoncé, mardi 12 septembre, des « polémiques qui n’ont pas lieu d’être » sur la relation bilatérale entre la France et le Maroc, alors que Rabat n’a pour l’heure pas retenu l’aide proposée par Paris, après le séisme dévastateur dans la région de Marrakech.")
displacy.render(doc, style="ent")
displacy.render(doc, style="dep", jupyter=True, options={"distance":90})