Vous êtes sur la page 1sur 3

Institut Galilée - Université Sorbonne Paris Nord Algorithmes et Images

Ingénieur INFO/INFOA 3° année 2023 – 2024

TP3 : Ouverture et Fermeture

1 Coder une ouverture et une fermeture


Les fonctions ci-dessous sont à rajouter au module commun morpho.py.

1. Vous devez écrire la fonction myopen qui prend en paramètre un élément structurant E (sous
forme d’une image) et une image I, et renvoie l’ouverture I ◦ E. Vérifiez l’idempotence de votre
ouverture.

2. Vous devez écrire la fonction myclose qui prend en paramètre un élément structurant E (sous
forme d’une image) et une image I, et renvoie la fermeture I ◦ E. Vérifiez l’idempotence de votre
fermeture.

2 Extraction de texte

Sur les images text1.png, text2.png et text3.png, nous souhaitons obtenir une image binaire où
seul le texte apparait en blanc. Votre programme devra fonctionner pour les trois images.

1. Ajoutez le fichier myutil.py dans votre package commun.

2. Trouvez un moyen de retirer le gradient d’illumination de l’image.

3. Utilisez la fonction seuil_interactif de myutil.py afin de trouver le meilleur seuil à appliquer.


La fonction s’utilise ainsi :
1 from Common import myutil
2

3 im = cv2.imread...
4 s = myutil.seuil_interactif(im)
5 im_bin = myutil.seuil(im,s)

Une fois le bon seuil trouvé, commentez la ligne appelant la fonction seuil_interactif car le seuil
est le même pour les trois fichiers.

4. Testez si votre programme fonctionne avec les trois images.

5. Ecrivez un programme qui devra fonctionner sur text4.png.

3 Etude de grains de riz


Vous devrez écrire votre programme dans riz.py. Nous souhaitons étudier l’image rice.png et réaliser
des mesures sur les grains.
1. Construisez une image binaire où seuls les grains de riz apparaissent en blanc.

2. Trouvez un moyen de mesurer l’épaisseur du grain de riz le plus large de l’image.

3. Regardez où est situé ce grain de riz : êtes-vous satisfait du résultat ? Peut-on améliorer la mesure ?

Sur l’image rice.png, vous devez segmenter les grains de riz. Ensuite, sur l’image binaire obtenue, vous
devrez calculer, de façon automatique, l’épaisseur (approximative) du grain de riz le plus large. Où est-il
situé ?
Vous devrez rendre votre travail sur Moodle. Votre fichier principal, contenant le code de début de
votre programme, devra s’appeler riz.py, et le programme sera appelé ainsi :
1 python3 riz.py input.png r s

Votre programme devra ouvrir l’image input.png, l’ouverture devra être réalisée avec un disque de
rayon r, et le seuil devra être effectué à la valeur s. Votre fichier zip devra contenir au moins l’arborescence
suivante :
1 |
2 |-riz.py
3 |
4 |-Commun|
5 |
6 |-__init__.py
7 |
8 |-morpho.py
9 |
10 |-strel.py
11 |
12 |-myutils.py

Votre programme devra simplement afficher à l’écran l’épaisseur du plus grand grain de riz, sans aucun
autre texte. Veillez bien à suivre les instructions de rendu à la dernière section.

4 Effectuer le rendu de votre travail


Voici les instructions qu’il faudra suivre pour faire le rendu de votre travail. Vous devrez renvoyer un
seul fichier zip (par de rar, pas de tgz, etc), dont le nom sera constitué ainsi :
1 VotreNom_VotrePrenom_VotreNumeroEtudiant.zip

Respectez bien les underscores entre les trois éléments. Si vous avez un binôme, ne mettez pas ici
son nom et ne rendez qu’un seul fichier en tout. Vous ne devez mettre aucun caractère accentué, ou signe
de ponctuation dans le nom de fichier. Si votre nom ou votre prénom comportent un espace ou un tirer,
ne les faîtes pas figurer.
Si vous avez un binôme, rajoutez à la racine du fichier zip un fichier texte nommé binome.txt où vous
spécifierez votre nom ainsi que celui de votre binome, en suivant ce format (ne rajoutez rien d’autre que
ce qui est demandé) :
1 Nom1 Prenom1 Numero_etudiant1
2 Nom2 Prenom2 Numero_etudiant2
Votre fichier zip devra contenir, à sa racine (pas dans un sous dossier), le fichier principal de votre
programme. Il est indispensable de respecter cette nomenclature des fichiers. Ne rendez ni les images ni
le dossier venv.

Vous aimerez peut-être aussi