algorithmique (école d'ingénieur) · Chapitre 6 · Exercice de TD
Agrandir une image
Redimensionner une image : le seam carving · niveau 3 (difficile)
Énoncé
Pour élargir une image d'une colonne, on duplique une couture de coût minimum : dans chaque ligne, on insère juste après le pixel de la couture un nouveau pixel, moyenne de ce pixel et de son voisin de droite.
- Écrire la fonction
int[][] inserer(int[][] I, int[] col), oùcol[l]est la colonne de la couture dans la ligne . - L'appliquer à l'image de l'exercice 6.1.
- Pour élargir de colonnes, pourquoi ne faut-il pas répéter fois « chercher la couture minimum puis la dupliquer » ? Proposer une meilleure méthode.
Corrigé
-
static int[][] inserer(int[][] I, int[] col) {
int L = I.length, C = I[0].length;
int[][] R = new int[L][C + 1];
for (int l = 0; l < L; l++) {
int a = col[l];
for (int c = 0; c <= a; c++) R[l][c] = I[l][c]; // R[0:a+1] = I[0:a+1]
R[l][a + 1] = (a + 1 < C) ? (I[l][a] + I[l][a + 1]) / 2 : I[l][a]; // pixel inséré
for (int c = a + 1; c < C; c++) R[l][c + 1] = I[l][c]; // R[a+2:C+1] = I[a+1:C]
}
return R;
}
- La couture minimum est (exercice 6.1) :
couture : [0, 1, 0]
l=2 [10, 10, 10, 80, 80]
l=1 [10, 80, 80, 80, 10]
l=0 [80, 80, 80, 10, 10]
nom : R
valeurs : 10 80 80 80 10
vert : 1
colorier : 2
legende : ligne l = 1 : pixel inséré après la couture, (80 + 80) / 2 = 80
- Après la duplication, la zone dupliquée reste peu énergique : la couture minimum suivante serait presque toujours la même, et l'on étirerait fois la même bande, ce qui crée un artefact très visible. La méthode d'Avidan et Shamir : chercher d'abord les coutures que l'on retirerait (en les retirant une à une d'une copie de l'image, et en mémorisant leurs positions dans l'image d'origine), puis dupliquer ces coutures distinctes dans l'image d'origine.
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.