Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Python est un langage de haut niveau doté qui peut être augmenté de nombreuses fonctions de calcul scientifique et de traitement d’images. Dans ces TP, vous utiliserez des notebooks qui permettent de faire de la « programmation lettrée », mélangeant ainsi du code (Python) et des éléments de texte.

Pour commencer, allumez votre ordinateur et ouvrez Jupyter Lab ou VSCodium.

Avec Jupyter Lab

Jupyter Lab s’exécute dans un navigateur web.

  • Ouvrez un terminal en tapant terminal dans le menu principal ou en utilisant le raccourci clavier Ctrl + Alt + T.

  • Sur les ordinateurs de TPS, vous devez activer l’environnement Python dédié aux TP en tapant dans le terminal :

    mm-activate python_base
  • Lancez Jupyter Lab en tapant :

    jupyter lab

    ou

    jupyter-lab
Avec VSCodium
  • Ouvrez le menu principal et tapez VSCodium.

Écrire un notebook

Un notebook est un fichier contenant du code, mais aussi des commentaires pour expliquer ce code ou les résultats qu’il a produit. Un notebook est divisé en cellules, qui sont de deux types :

  • les cellules de type « Code » ne contiennent que du code (Python par exemple) ;

  • les cellules de type « Markdown » contiennent du texte mis en forme. En appuyant sur Ctrl+Entrée sur une cellule, le code de cette cellule (et uniquement celle-ci !) est exécuté.

Cellules « Code »

Par défaut, les cellules sont sensées contenir du code. Elles sont divisées en une entrée (les instructions Python) et une sortie (le résultat).

Par exemple, l’entrée suivante :

La valeur est 63

Renvoie cette sortie :

La valeur est 63

Cellules « Markdown »

Vous pouvez changer le type d’une cellule en choisissant Markdown dans la liste déroulante de la barre d’outils (Jupyter Lab) ou en cliquant sur Python dans l’angle en bas à droite de la cellule (VSCodium). Markdown est un langage très simple pour formater du texte (par exemple, écrire des titres, des listes ou des équations).

Par exemple :

La _convolution_ entre **deux** images $f$ et $g$ est définie comme suit :

$$
(f*g)(m,n) = \sum_u \sum_v f(u,v) g(u-m,v-n)
$$

donne :

La convolution entre deux images ff et gg est définie comme suit :

(f∗g)(m,n)=∑u∑vf(u,v)g(u−m,v−n)(f*g)(m,n) = \sum_u \sum_v f(u,v) g(u-m,v-n)

Veuillez consulter cette aide pour apprendre la syntaxe Markdown.

Écrire du code

Pour faire du calcul scientifique avec Python, il faut importer des modules. En général, nous utiliserons les trois modules suivants :

  • numpy, qui fournit des fonctions pour le calcul scientifique général ;

  • scikit-image qui est un ensemble d’algorithmes pour le traitement d’images ;

  • matplotlib, qui permet d’afficher des images.

Les modules Python sont importés dans votre code à l’aide de l’instruction import.

Par exemple, le code suivant ouvre une image, la convertit en niveaux de gris et affiche les deux versions :

<Figure size 640x480 with 2 Axes>

Pour les utilisateurs de Matlab

Python, grâce au module Numpy, est très similaire à Matlab. Ces deux langages fonctionnent avec des scripts et leurs fonctions sont très similaires. Il existe cependant des différences majeures, listées ci-après.

Modules

Python est conçu pour être un langage de programmation généraliste. Contrairement à Matlab, il ne contient que très peu de fonctions scientifiques de base. Il faut donc le compléter avec des modules comme Matplotlib ou Numpy. Par exemple, Numpy est chargé avec :

Les fonctions dans Numpy sont ensuite accessibles avec np.nom_de_la_fonction.

Vecteurs et matrices

Alors que Matlab utilise des parenthèses pour les vecteurs et les matrices, Python utilise des crochets. De plus, le premier élément dans Matlab est à l’indice 1, tandis qu’en Python, il est à l’indice 0.

Matlab

Python

a(1)

a[0]

B(3,5)

B[2,4]

Point-virgule

En Python, il n’y a pas de point-virgule (;) à la fin des instructions.

Pour aller plus loin…

Pour aller plus loin, vous pouvez consulter cet aide-mémoire ou cet article sur Numpy.