[[{"text":"Afin de vérifier vos acquis, répondez aux questions suivantes.","posi":0}],[{"text":"En quelle année a été créé le concept d'hypertexte numérique (lien hypertexte)?"},{"radio":[{"label":"1965","sol":true},{"label":"1995","sol":false},{"label":"1935","sol":false},{"label":"1905","sol":false}]}],[{"text":"
En quelle année a été créé le world wide web ( www )?
Vous devez réaliser les programmes suivants en html5 directement dans le navigateur.
Vous avez le droit à tout document.
Attention chaque page doit respecter la structure et les balises d'une page HTML5.
Pour des questions d'équité dans la classe, vous devez utiliser 1 seul écran.
","posi":1}],[{"chrono":480},{"text":"
Ecrire une page html qui affiche dans un paragraphe, le texte suivant:
Attention, vous devez respecter les retours à la ligne.
Nous autres, mordus d'informatique, préférons par-dessus tout passer notre temps à bidouiller nos ordinateurs, plutôt que les utiliser pour faire quelque chose de productif!
Ecrire un formulaire qui demande : - le nom - le prénom - et l'age de la personne et qui l'envoie par la méthode post au serveur suivant : http://www.sciencesappliquees.com/serveur.php
"}],[{"text":"Ecrire le code pour créer sur le haut de l'image une bande horizontale bleue de 20 pixels de haut.
","title":"Exercice"},{"code":"
image = new SimpleImage(\"./assets/stop.jpg\")
for pixel in image :
#Ecrire le code ici
print(image)
"},{"solution":"#mettre rouge et vert à 255 et bleu à 0\npixel = image.getPixel(1, 0)\npixel.setRed(255)\npixel.setGreen(255)"}],[{"text":"Ecrire le code pour créer sur la droite de l'image une bande verticale noire de 20 pixels de large.","title":"Exercice"},{"code":"
image = new SimpleImage(\"./assets/stop.jpg\")
for pixel in image :
#Ecrire le code ici
print(image)
"},{"solution":"#mettre rouge et vert à 255 et bleu à 0\npixel = image.getPixel(1, 0)\npixel.setRed(255)\npixel.setGreen(255)"}],[{"text":"Nous souhaitons changer la couleur rouge du panneau stop en bleue.
Pour cela, il faut transformer les pixels dont le rouge est supèrieur à 160 en bleu.
Ecrire le code correspondant.
","title":"Exercice"},{"code":"
image = new SimpleImage(\"./assets/stop.jpg\")
for pixel in image :
#Ecrire le code ici
if pixel.getRed() > 160 :
if pixel.getGreen() < 160 :
if pixel.getBlue() < 160 :
pixel.setRed(0)
pixel.setGreen(0)
pixel.setBlue(255)
print(image)
"}],[{"text":"Pour modifier uniquement le rouge de l'image, il faut sélectionner les pixel qui ont le canal rouge dominant.
Il faudra donc utiliser l'algorithme suivant :
Etape 1 ; calculer la moyenne du Rouge Vert Bleu.
Etape 2 ; mettre un seuil de détection à 1.2 fois la moyenne.
Etape 3 ; mettre tous les pixel dont le rouge est supérieur à moyenne * 1.5 en bleu.
Mettre le pixel à l'origine en vert et celui juste à droite en rouge.
Modifier le code en conséquence.
","title":"Détection du trotoire "},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
# Pixel refers to (0, 0), set to red
pixel = image.getPixel(0, 0)
pixel.setRed(255)
# Change pixel to refer to (1, 0)
pixel = image.getPixel(1, 0)
pixel.setRed(255)
print(image)
"},{"solution":"#mettre vert 255\npixel = image.getPixel(0, 0)\npixel.setGreen(255)\n\n#mettre rouge 255\npixel = image.getPixel(1, 0)\npixel.setRed(255)"}],[{"text":"Nous allons incruster l'image de droite dans les pixels rouge du stop.
L'algorithme est le suivant :
pixel sont les pixels de l'image stop.jpg.
pixel2 sont les pixels de l'image leaves.jpg
L'algorithme est le suivant pour réaliser le programme.
Pour chacun des pixels :
Etape 1 : Calculer la moyenne des couleurs RVB d'un pixel.
Etape 2 : tester si le canal rouge du pixel est dominant avec un seuil à 1.5*moyenne.
Etape 3 : Si oui, récupérer les coordonnées x y du pixel dans l'image stop.jpg.
Etape 4 : Sélectionner le pixel2 aux coordonnées x et y de l'image leaves.jpg
Etape 6 ; copier les couleurs rouge, verte et bleue du pixel2 dans des variables.
Etape 6 : Copier les RVB de pixel2 (leaves.jpg) dans pixel (stop.jpg).
Tester le code et indiquer en commentaire sur celui-ci les différentes étapes (#Etape 1, #Etape 2, ...).
","title":"Incrustation d'image"},{"code":"
image = new SimpleImage(\"./assets/stop.jpg\")
incruste = new SimpleImage(\"./assets/leaves.jpg\")
Now we'll do one like the movies -- film the movie start in front of a blue screen. Replace the blue background behind the monkey with pixels from moon.jpg.
Here is our monkey movie star:
Here is our background, the famous Apollo 8 photo of the earth shown rising above the moon horizon. There is a theory that this famous image helped start the environmental movement.
Nous allons maintenant en faire un film similaire au film - filmer le film devant un écran bleu. Remplacez le fond bleu derrière le singe par des pixels provenant de moon.jpg.
Voici notre star de cinéma singe:
singe montré en face de fond bleu
Voici notre fond d'écran, la célèbre photo Apollo 8 de la Terre montrée au-dessus de l'horizon lunaire. Il existe une théorie selon laquelle cette image célèbre a aidé à lancer le mouvement écologiste.
célèbre photo Apollo 8 de la terre sur un fond noir
Plan Bluescreen:
Boucle sur monkey.jpg
Détecter les pixels bleus, c'est-à-dire bleu haut
Pour ces pixels: copier sur les pixels de la lune
(recopiez l'exemple de code précédent pour commencer)
Ensuite, essayez-le avec d’autres images: paris.jpg yosemite.jpg stanford.jpg
","title":"INCRUSTATION AVEC LE CANAL BLEU"},{"code":"
","title":"Les boucles pour le traitement d'images"},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
#image sans traitement
print(\"image non traitée:\")
print(image);
#traitement de tous les pixels de l'image
for pixel in image :
pixel.setGreen(0)
pixel.setBlue(0)
#image traiter
print(\"image traitée:\")
print(image)
"},{"text":"
Combien de fois ont été exécutés les instructions dans la boucle for du programme?
Aide : x.png est une image de 10 pixels sur 10 pixels.
"},{"edit":"
Répondre ici.
"},{"text":"Lorsque l'on met à 0 le canal bleu et le canal vert d'un pixel blanc. De quelle couleur devient le pixel?"},{"edit":"
Répondre ici.
"}],[{"text":"
Expériences avec les deux ifs
Utilisez couper / coller pour exécuter avec l'un ou l'autre ou les deux si
Puis changez leaves.jpg, en stanford.jpg
Exécuter sans puis avec le code if-blue
Pourquoi ça ressemble à ça?
Échange la commande, donc si-bleu est la première, suivie de si-rouge
Maintenant à quoi ça ressemble?
Conclusion: if-blue va se déclencher sur un pixel original ou nouveau
La logique ne fonctionne que sur les données que nous alimentons
Répondre
","title":"flowers.jpg"},{"edit":"
Répondre ici.
"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
print(\"avant\")
for pixel in image :
pixel.setRed(255)
pixel.setGreen(255)
pixel.setBlue(0)
print(image)
print(\"après\")
"},{"text":"Exécuter le programme.
Que fait ce programme.
"},{"edit":"
Répondre ici.
"},{"text":"Comment varie le temps de traitement de l'image en fonction de la grandeur de l'image?"},{"edit":"
Répondre ici
"}],[{"text":"
Peinture post-traitement
Ici nous avons banana.jpg
banane jaune avec des briques rouges
Supposons que nous voulions montrer à la banane son rêve de paris
Mais nous ne voulons pas remplacer toute la brique rouge
Cette image ne convient pas bien à l'écran bleu (banane ou brique, trop de rouge)
On peut \"réparer ça en post\" (expression hollywoodienne)
Signification manipuler l'image dans un programme de peinture
J'ai créé banana2.jpg en tant que copie à modifier
Recadrer l'image pour positionner la banane et la tour eiffel
Mettre dans les cercles bleus artistiquement (démo)
Maintenant, le code peut simplement chercher du bleu
Vous pouvez également l'utiliser pour \"corriger\" discrètement dans l'image d'origine des petites zones qui posent des problèmes de logique de sélection d'écran bleu (comme lorsque vous avez des petites taches dont vous ne pouvez pas vous débarrasser).
Sur le Mac, Aperçu dispose d'un mode d'édition primitif. 1. Faites d’abord une copie de votre fichier original pour ne pas endommager l’original. Ouvrez la copie dans Aperçu. 2 Cliquez sur le crayon pour passer en mode édition. 3 Cliquez sur le cercle pour dessiner des cercles. 4 Cliquez sur les couleurs, en sélectionnant le bleu et une couleur de remplissage du bleu. Dessiner / organiser des cercles bleus ou autre. Windows a un programme de peinture simple similaire.
"},{"text":"Les valeurs affichées par les canaux rouge, vert et bleu sont-ils logiques (255,255,255)?"},{"edit":"
Répondre ici.
"}],[{"text":"Dans l'exemple suivant, nous récupérons la valeur du canal rouge du pixel : red = pixel.getRed()
Nous multiplions par 2 la valeur.
pixel.setRed(red) : Met le canal rouge du pixel à cette nouvelle valeur.
Exécuter le code et décrire le résultat obtenu.
","title":"Augmentation du canal Rouge"},{"edit":"
Décrire ici.
"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
for pixel in image :
red = pixel.getRed()
red = red * 2
pixel.setRed(red)
print(image)
"}],[{"text":"Nous souhaitons transformer en orange la fleur jaune.
Pour cela, il faut garder 75% du canal vert ( x 0.75 ).
Ecrire le code correspond en utilisant la combinaison setGreen et getGreen.
","title":"Expérience n°4"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
for pixel in image :
#Ecrire le code ici
print(image)
"},{"solution":" green = pixel.getGreen()\n green = green * 0.75\n pixel.setGreen(green)"}],[{"text":"Vous allez multiplier par 0.75 les valeurs d'origines des canaux rouge, vert et bleu de l'image.
Ecrire le code python correspondant.
Ensuite vous essaierez avec un coefficient de 0.5 et 0.25.
Quel effet cela a sur l'image?
","title":"Expérience n°5"},{"edit":"
Répondre ici.
"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
for pixel in image :
#Ecrire le code ici
print(image)
"},{"solution":" green = pixel.getGreen()\n green = green * 0.75\n pixel.setGreen(green)"}],[{"text":"
Nous avons volontairement modifié une image pour camoufler sont contenue.
Les paramètres du traitement de l'image sont les suivants :
Les valeurs verte et bleue ne sont que des valeurs aléatoires dans la plage 0 à 255. On appelle cela \"neige\" ou \"bruit de fond\".
Les données de l'image réelle sont exclusivement dans les valeurs rouges.
De plus, les valeurs en rouge ont toutes été divisées par 10 (pour la foncer).
La \"neige\" créé par le vert et le bleu obscurcit l'image réelle.
Écrire le code pour récupérer l'image réelle et résoudre l'énigme.
"},{"solution":"#mettre rouge et vert à 255 et bleu à 0\npixel = image.getPixel(0, 0)\npixel.setRed(255)\npixel.setGreen(255)"}],[{"text":"
Mettre le pixel(1,0) en jaune.
Modifier le code en conséquence.
","title":"Exercice"},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
pixel = image.getPixel(0, 0)
pixel.setRed(255)
print(image)
"},{"solution":"#mettre rouge et vert à 255 et bleu à 0\npixel = image.getPixel(1, 0)\npixel.setRed(255)\npixel.setGreen(255)"}],[{"text":"
Mettre le pixel(0,0) en blanc.
Modifier le code en conséquence.
","title":"Exercice"},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
pixel = image.getPixel(0, 0)
pixel.setRed(255)
print(image)
"},{"solution":"#mettre rouge et vert à 255 et bleu à 0\npixel = image.getPixel(0, 0)\npixel.setRed(255)\npixel.setGreen(255)\npixel.setBlue(255)"}],[{"text":"
Ecrire le code pour mettre le pixel(1,4) en violet.
","title":"Exercice"},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
print(image)
"}],[{"text":"Pour modifier la couleur de plusieurs pixels, il faut juste assigner le pixel à une nouvelle coordonnée et lui mettre une nouvelle couleur.
Tester le code.
","title":"Plusieurs Pixels - Diagonale en Rouge"},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
# Pixel refers to (0, 0), set to red
pixel = image.getPixel(0, 0)
pixel.setRed(255)
# Change pixel to refer to (1, 0)
pixel = image.getPixel(1, 0)
pixel.setRed(255)
print(image)
"}],[{"text":"
Mettre le pixel à l'origine en vert et celui juste à droite en rouge.
Ecrire un programme pour créer une barre horizontale bleu, blanc et rouge.
Appeler le professeur pour valider votre travail.
","title":"Exercice"},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
pixel = image.getPixel(0, 0)
pixel.setBlue(255)
pixel = image.getPixel(1, 0)
pixel.setBlue(255)
#Ecrire la suite
print(image)
"}],[{"text":"
Supposons que vous avez 5 000 cartons dans un entrepôt et un robot.
Vous voulez que le robot déplace toutes les cartons d'un coin à l'autre de l'entrepôt.
L'ordinateur est stupide, alors vous lui expliquez (en codant) en détail comment déplacer un carton.
Ensuite vous lui dites de répéter les mêmes étapes pour tous les cartons (5000 fois).
C'est dans ces situations que vous utiliserez les boucles
Boucles = rapidité + puissance!
Exécuter le code Python ci-dessous.
Le programme à réaliser un traitement sur tous les pixels de l'image x.png.
Celui-ci consiste à mettre à 0 les canaux du vert et du bleu.
Combien de fois ont été exécutés les instructions dans la boucle for du programme?
Aide : x.png est une image de 10 pixels sur 10 pixels.
Lorsque l'on met à 0 le canal bleu et le canal vert d'un pixel blanc. De quelle couleur devient le pixel?
","title":"Les boucles pour le traitement d'images"},{"code":"
image = new SimpleImage(\"./assets/x.png\")
image.setZoom(20)
#image sans traitement
print(\"image non traitée:\")
print(image);
#traitement de tous les pixels de l'image
for pixel in image :
pixel.setGreen(0)
pixel.setBlue(0)
#image traiter
print(\"image traitée:\")
print(image)
"},{"text":"
Combien de fois ont été exécutés les instructions dans la boucle for du programme?
Aide : x.png est une image de 10 pixels sur 10 pixels.
"},{"edit":"
Répondre ici.
"},{"text":"Lorsque l'on met à 0 le canal bleu et le canal vert d'un pixel blanc. De quelle couleur devient le pixel?"},{"edit":"
Répondre ici.
"}],[{"text":"Maintenant vous allez travaillé avec l'image flowers.jpg.
L'image flowers.jpg est une image de 457 pixels de large (width) sur 360 pixels de haut (height).
Combien de fois vont être exécutés les instructions dans la boucle for du programme?
","title":"flowers.jpg"},{"edit":"
Répondre ici.
"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
print(\"avant\")
for pixel in image :
pixel.setRed(255)
pixel.setGreen(255)
pixel.setBlue(0)
print(image)
print(\"après\")
"},{"text":"Exécuter le programme.
Que fait ce programme.
"},{"edit":"
Répondre ici.
"},{"text":"Comment varie le temps de traitement de l'image en fonction de la grandeur de l'image?"},{"edit":"
Répondre ici
"}],[{"text":"
Nous avons vu que pour obtenir la couleur jaune, il faut utiliser du rouge + vert.
Nous savons donc que les parties jaunes de l’image flowers.jpg ont des valeurs rouge et vert élevées. Alors que se passe-t-il si, pour chaque pixel, s! nous mettons le rouge à 0?
L'exemple précédent avait modifié tous les pixels de l'image. Ce n'est pas réaliste.
De quoi sont faits les pixels des feuilles vertes? De quoi sont faits les pixels des fleurs jaunes?
Vous allez, pour chaque pixel, mettre le canal rouge à 0.
Ecrire le code en conséquence (rouge à 0).
Quelles sont les couleurs RVB élevées pour les fleurs jaunes?
","title":"Expérience n°1 : Rouge à 0"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
for pixel in image :
#Ecrire le code ici
print(image)
"},{"solution":"pixel.setRed(255)"}],[{"text":"Maintenant, vous allez mettre le canal vert et bleu à 0, sans toucher au canal rouge.
"},{"text":"Les valeurs affichées par les canaux rouge, vert et bleu sont-ils logiques (255,255,255)?"},{"edit":"
Répondre ici.
"}],[{"text":"Dans l'exemple suivant, nous récupérons la valeur du canal rouge du pixel : red = pixel.getRed()
Nous multiplions par 2 la valeur.
pixel.setRed(red) : Met le canal rouge du pixel à cette nouvelle valeur.
Exécuter le code et décrire le résultat obtenu.
","title":"Augmentation du canal Rouge"},{"edit":"
Décrire ici.
"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
for pixel in image :
red = pixel.getRed()
red = red * 2
pixel.setRed(red)
print(image)
"}],[{"text":"Nous souhaitons transformer en orange la fleur jaune.
Pour cela, il faut garder 75% du canal vert ( x 0.75 ).
Ecrire le code correspond en utilisant la combinaison setGreen et getGreen.
","title":"Expérience n°4"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
for pixel in image :
#Ecrire le code ici
print(image)
"},{"solution":" green = pixel.getGreen()\n green = green * 0.75\n pixel.setGreen(green)"}],[{"text":"Vous allez multiplier par 0.75 les valeurs d'origines des canaux rouge, vert et bleu de l'image.
Ecrire le code python correspondant.
Ensuite vous essaierez avec un coefficient de 0.5 et 0.25.
Quel effet cela a sur l'image?
","title":"Expérience n°5"},{"edit":"
Répondre ici.
"},{"code":"
image = new SimpleImage(\"./assets/flowers.jpg\")
for pixel in image :
#Ecrire le code ici
print(image)
"},{"solution":" green = pixel.getGreen()\n green = green * 0.75\n pixel.setGreen(green)"}],[{"text":"
Nous avons volontairement modifié une image pour camoufler sont contenue.
Les paramètres du traitement de l'image sont les suivants :
Les valeurs verte et bleue ne sont que des valeurs aléatoires dans la plage 0 à 255. On appelle cela \"neige\" ou \"bruit de fond\".
Les données de l'image réelle sont exclusivement dans les valeurs rouges.
De plus, les valeurs en rouge ont toutes été divisées par 10 (pour la foncer).
La \"neige\" créé par le vert et le bleu obscurcit l'image réelle.
Écrire le code pour récupérer l'image réelle et résoudre l'énigme.
En poursuivant votre navigation sur mon site,
vous acceptez l’utilisation des Cookies et autres traceurs
pour réaliser des statistiques de visites et enregistrer
sur votre machine vos activités pédagogiques.En savoir plus.