Connexion élèves

Choisir le(s) module(s) à installer :

Les fonctions demandées


Vous allez devoir coder une série de fonctions effectuant certains traitements d'images. Il faudra ensuite tester ces fonctions. La structure de votre programme principal sera très lisible :

	# lecture de l'image à traiter
	photo=Image.open("vaugelas.jpg")
	
	# utilisation de la fonction
	photo2=traitement(photo)
	
	# ériture et affichage de la nouvelle image
	photo2.show()
	photo2.save("vaugelastransfo.png")
				

Pour chaque fonction vous devez :

Inverser les niveaux de gris (ou effet négatif)

image en négatif

négatif

L'objectif de cette partie est de réaliser le négatif d'une image.
Votre travail consistera donc à écrire la fonction négatif dont l'entête sera def negatif(photo).

La fonction à compléter sera donc :


def negatif(photo):
	taille=photo.size
		for i in range(taille[0]):
			for j in range(taille[1]):
				#####
	return #####

				

Pour rendre opérationnelle la fonction précédente, il faudra utiliser les méthodes getpixel et putpixel pour récupérer la valeur des pixels et les modifier.
Pour trouver cette modification, posez vous les questions suivantes. (on suppose que l'image comporte 256 niveaux de gris -de 0 à 255- ).

Conversion de niveaux de gris en noir et blanc "pur"

image en noir et blanc

image en noir et blanc

L'objectif de cette fonction est de transformer une image en niveau de gris en noir et blanc "pur" selon un seuil. Si la valeur d'un pixel est supérieur ou non à ce seuil il deviendra noir ou blanc (valeur 0 ou valeur 255 uniquement).
Vous devez compléter la fonction ci-dessous puis la tester avec une image simple.

	def NetB(photo, seuil):
	
		return #####
				

Dans un premier temps écrivez l'algorithme réalisant cette fonction et proposez votre solution au professeur, avant de coder la fonction. Vous écrirez ensuite le programme principal qui convertira en noir et blanc pur une image simple en niveau de gris au format pgm.

Contour d'une image



Voici un algorithme réalisant la détection du contour d'une image selon un seuil variable.
contour d'une image

image en noir et blanc



données :
	data: liste des pixel d'une image
largeur, hauteur : dimension de l'image
niveauxGris : niveau maximal du codage en niveaux de gris
seuil : entier seuil de détection du contour d'une image
résultat : tableau data
fonction :
i parcours l'intervalle (0,hauteur-1)
j parcours l'intervalle (0,largeur-1)
a = valeur du pixel (i,j)
b = valeur du pixel (i+1,j)
c = valeur du pixel (i,j+1)
si |a-b|>seuil ou si |a-c|>seuil
alors le pixel (i,j) reçoit 0
sinon le pixel (i,j) reçoit 255
retourner le tableau data

Le principe de l'algorithme consiste à détecter si le contraste entre deux pixels proches et supérieur ou non à un seuil. Le pixel devient alors noir ou blanc. L'image transformée est donc ensuite purement noir ou blanche.

Il ne vous reste "plus" qu'a coder cet algorithme.

Miroir

miroir d'une image

miroir


L'objectif de cette fonction est d'appliquer l'effet miroir vertical à une image.

Dans un premier temps écrivez l'algorithme réalisant cette fonction et proposez votre solution au professeur, avant de coder la fonction (dont l'entête cette fois n'est pas fourni).
Vous écrirez ensuite la fonction qui appliquera l'effet miroir à une image.

	def miroir(photo):
	
		return #####
				

Redimensionner

image redimensionee

redimensionner

Vous allez devoir maintenant coder une fonction de redimensionnement d'image.
Les dimensions de l'image seront multipliées par le réel facteur . Si facteur est supérieur à 1 l'image est agrandie, s'il est inférieur à 1, l'image sera diminuée. L'entête de la fonction est donnée ci-dessous :


	def Redim(photo, facteur):
		...
		return #####