115 lines
4.1 KiB
TeX
115 lines
4.1 KiB
TeX
\documentclass[11pt,a4paper]{../../template/template_cours}
|
||
\usepackage{listings}
|
||
|
||
\usepackage{minted}
|
||
|
||
\title{Modifier une image avec Python}
|
||
\author{Adrian Amaglio}
|
||
\def\thesequence{Photographie numérique}
|
||
|
||
\begin{document}
|
||
Lisez attentivement le sujet au fur et à mesure de votre progression.
|
||
|
||
% ---
|
||
|
||
\section*{Ouvrir une image}
|
||
\begin{exercice}
|
||
Créez un dossier nommé « image python » (ou autre) dans votre zone personnelle.
|
||
C’est là que nous travaillerons durant la durée de cette activité.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Téléchargez l’image de pomme sur laquelle nous allons travailler : \url{https://pixees.fr/informatiquelycee/n_site/img/pomme.jpg} et enregistrez là dans votre dossier de travail.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Démarrez edupython et recopiez y les lignes suivantes :
|
||
\begin{minted}{python}
|
||
from PIL import Image
|
||
img = Image.open("pomme.jpg")
|
||
r,v,b = img.getpixel((100,250))
|
||
print("rouge : ", r, " vert : ", v, " bleu : ", b)
|
||
\end{minted}
|
||
La première ligne de ce programme sert à activer la modification des images.\\
|
||
La seconde ligne sert à ouvrir l’image de pomme précédemment téléchargée.\\
|
||
La troisième ligne récupère la couleur du pixel aux coordonnées (100,250).\\
|
||
La quatrième ligne affiche la couleur du pixel.\\
|
||
Enregistrez le fichier dans votre dossier de travail et exécutez le. Quelle est la couleur de ce pixel ?\\
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Modifiez votre programme pour qu’il affiche la couleur en RVB du pixel aux coordonnées (250,300). Faites vérifier votre travail.
|
||
\end{exercice}
|
||
|
||
\section*{Modifier quelques pixels}
|
||
|
||
\begin{exercice}
|
||
Modifiez votre programme pour qu’il ressemble a ceci :
|
||
\begin{minted}{python}
|
||
from PIL import Image
|
||
img = Image.open("pomme.jpg")
|
||
img.putpixel((250,250),(255,0,0))
|
||
img.show()
|
||
\end{minted}
|
||
Vous devriez obtenir une image de pomme, avec en son centre un pixel rouge vif.
|
||
C’est celui que python vient de modifier.\\
|
||
La première ligne de ce programme sert à activer la modification des images.\\
|
||
La seconde ligne sert à ouvrir l’image de pomme précédemment téléchargée.\\
|
||
La troisième ligne sert à placer un pixel rouge (de couleur 255,0,0) au milieu de l’image, c’est à dire aux coordonnées (250,250).\\
|
||
La quatrième ligne sert à afficher l’image à l’écran.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Modifiez le programme précédent pour qu’il colorie en bleu le pixel aux coordonnées (100, 250)
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Modifiez le programme précédent pour qu’il colorie plusieurs pixels les uns en dessous des autres de manière à tracer un trait vertical de plusieurs pixels de long.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Modifiez le programme précédent pour qu’il colorie plusieurs pixels les uns à côté des autres de manière à tracer un trait horizontal de plusieurs pixels de long.
|
||
\end{exercice}
|
||
|
||
\section*{Écrire de vrais programmes de traitement}
|
||
|
||
\begin{exercice}
|
||
Saisissez et testez le programme suivant :
|
||
\begin{minted}{python}
|
||
from PIL import Image
|
||
img = Image.open("pomme.jpg")
|
||
largeur = 500
|
||
hauteur = 500
|
||
for y in range(hauteur):
|
||
for x in range(largeur):
|
||
r,v,b = img.getpixel((x,y))
|
||
nouveau_r = r+50
|
||
nouveau_v = v+50
|
||
nouveau_b = b+50
|
||
img.putpixel((x,y), (nouveau_r, nouveau_v, nouveau_b))
|
||
img.show()
|
||
\end{minted}
|
||
Que fait ce programme ?
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
En vous inspirant de l’exercice précédent, écrivez un programme qui inverse le rouge et le bleu de chaque pixel sans changer le vert.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Après avoir fait quelques recherches sur le « négatif d’une image », écrivez un programme qui affiche le négatif d’une image.
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Après avoir fait quelques recherches sur les « images en niveau de gris », écrivez un programme qui transforme une image couleur en image en niveaux de gris.\\
|
||
Aide : la division en python se fait à l’aide de l’opérateur /
|
||
\end{exercice}
|
||
|
||
\begin{exercice}
|
||
Testez les deux derniers programmes sur une image de votre choix.\\
|
||
Faites vérifier au professeur.
|
||
\end{exercice}
|
||
|
||
|
||
\end{document}
|