Bonjour à tous ! Comme projet bac en ISN j'ai créé un logiciel de retouche photo ( assez modeste ), mais il y a certaines procédures sur lesquelles j'ai été aidée et que je ne comprends pas totalement. Je passe mon oral demain ( avec une semaine d'avance ! ) donc j'aurais besoin de votre aide car je vais devoir expliquer tout mon programme. Merci d'avance !
J'ai créé une procédure permettant de faire un filtre sépia sur une photo mais je ne comprends pas bien cette partie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 for i in range (0, largeur, 1): for j in range (0, hauteur, 1): p = imageEnMemoire.getpixel((i, j)) # On retourne les valeurs du pixel de l'image en mémoire de coordonnée i,j R = (25756 * p[0] + 50397 * p[1] + 12386 * p[2]) >> 16 G = (22872 * p[0] + 44958 * p[1] + 11010 * p[2]) >> 16 B = (17826 * p[0] + 34996 * p[1] + 8585 * p[2]) >> 16 # Pour ces 3 commandes on recalcule une nouvelle valeur de R, G et B permettant la couleur sépa if R < 0: R = 0 if R > 255: R = 255 if G < 0: G = 0 if G > 255: G = 255 if B < 0: B = 0 if B > 255: B = 255 # Pour ces 3 commandes on vérifie si pour les 3 nouvelles valeurs de R, G et B on doit mettre la valeur à 0 ou à 250 imageTemporaire.putpixel ((i, j),(R, G, B))
Une autre procédure permet de faire de la stéganographie (cacher une image dans une autre) mais je ne comprends pas bien cette partie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for i in range(l): for j in range(h): (r1, g1, b1) = imageEnMemoire.getpixel((i, j)) # Acquisition des pixels de la première image (r2, g2, b2) = imageEnMemoire1.getpixel((i, j)) # Acquisition des pixels de la seconde image (r3, g3, b3) = ((r2//16)*16 + r1//16, (g2//16)*16 + g1//16, (b2//16)*16 + b1//16) # Prépare l'image où la première est cachée dans la seconde imageTemporaire.putpixel((i, j), (r3, g3, b3)) # Création de l'image sténographiée pixel par pixel
Et j'ai une partie permettant de créer une bordure autour de la photo, j'aurais voulu savoir si cette partie ne sert qu'à créer la bordure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 for j in range (hauteur) : for i in range (largeur) : p = imageEnMemoire.getpixel((i, j))# On retourne les valeurs du pixel de l'image en mémoire de coordonnée i,j imageTemporaire.putpixel((i+bord, j+bord), p) for j in range (bord) : for i in range (nouvelleLargeur) : imageTemporaire.putpixel((i, j), pixelbord) for j in range (hauteur+bord, nouvelleHauteur) : for i in range(nouvelleLargeur) : imageTemporaire.putpixel((i, j), pixelbord) for i in range (bord) : for j in range (nouvelleHauteur) : imageTemporaire.putpixel((i, j), pixelbord) for i in range (largeur+bord, nouvelleLargeur) : for j in range (nouvelleHauteur) : imageTemporaire.putpixel((i, j), pixelbord) # Ces fonctions créent la bordure autour de l'image
Merci !![]()
Partager