Aide Python ( pour le bac )
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:
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:
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:
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 ! :)