CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[aide] Programme Python

EisenbergduBled
EisenbergduBled
Niveau 1
07 mars 2015 à 14:21:23

Bonjour,
Je suis en Terminale S spé ISN. J'ai un exercice a faire je suis très mauvais en programmation.
Sujet: "Seuillage simple :
Cette opération consiste à utiliser une image en niveau de gris. L'opération dite de "seuillage simple"
consiste à mettre à zéro tous les pixels ayant un niveau de gris inférieur à une certaine valeur (appe-
lée seuil, en anglais treshold) et à la valeur maximale les pixels ayant une valeur supérieure. Ainsi le ré-
sultat du seuillage est une image binaire contenant des pixels noirs et blancs, c'est la raison pour la-
quelle le terme de binarisation est parfois employé. Le seuillage permet de mettre en évidence des
formes ou des objets dans une image. Toutefois la difficulté réside dans le choix du seuil à adopter.
image brute
Votre travail comprendra les points suivants :
• extraire les informations RGB d'une image (voir des exemples d'image dans le dossier proposé).
• Créer une nouvelle image en RGB, où les pixels inférieur à un seuil fixé par l'utilisateur seront à
« blanc », et les autres seront au « noir »."
Et mon code ne fonctionne pas du tout.
Code : # Créé par EisenbergDuBled, le 17/02/2015
from PIL import Image

im1=Image.open(input("entrez le nom de l'image a seuiller"))
L,H=im1.size

if im1==1:
N=int(input("Donnez le taux de Seuillage"))
for y in range(H):
for x in range(L):
p=im1.getpixel((x,y))
if p>=N:
im2.putpixel((x,y),(255,255,255))
else:
im2.putpixel((x,y),(0,0,0))
im2.save("image_seuil.jpg")

Pouvez vous me dire ce qui cloche? Et éventuellement m'aider a trouver une solution.
"p" étant une liste je ne sais pas comment le gérer.
Merci d'avance.

EisenbergDuBled

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
07 mars 2015 à 15:23:51

Ya plein de choses qui clochent.

Déjà tu présentes ton code sans le mettre entre <code></code>, du coup c’est pas glop :hap:

Ensuite ta condition de vérification ne sera jamais vérifiée (im1 ne peux pas être casté en int).
D’ailleurs si ça chie, ça lèvera une exception en toute logique, donc autant faire un try catch (je connais pas la syntaxe exacte, je ne suis pas un pythonier).

        p=im1.getpixel((x,y))
        if p>=N:

Pose un problème, c’est que p sera de type tuple, et tu veux le comparer à un entier. En fait en imagerie numérique, il y a plusieurs métriques pour évaluer la valeur de gris d’un pixel, tu peux prendre le max des 3 composantes, ou alors la moyenne arithmétique, géométrique ou harmonique (moins courant), faire des moyennes pondérées, etc…
Pour accéder au rouge c’est p[0] du coup, p[1] pour le vert et p[2] pour le bleu, tu peux aussi faire un:

prouge, pvert, pbleu = im1.getpixel(x,y)

J’imagine, pour avoir accès aux composantes directement et plus lisiblement.

Ensuite un dernier problème, c’est que im2 n’est pas initialisée, tu peux le faire avec un :

im2 = Images.new("RGB", im1.size)

J’ai mis RGB parce que ce sont les notations que tu as adopté, mais ça serait mieux de faire du niveau de gris à la place ( "L" à la place de "RGB"), mais du coup il faudrait aussi remplacer tes putpixels (r,g,b) par putpixel(valeur).

Et voilà, avec ton code corrigé, je peux obtenir :
https://image.noelshack.com/fichiers/2015/10/1425738201-image-seuil.jpg

Addendum: Et accessoirement, le jpg c’est pas le format idéal je pense pour sauver le résultat, essaye de passer en gif ou en png.

Message édité le 07 mars 2015 à 15:27:59 par Dark_Chouhartem
EisenbergduBled
EisenbergduBled
Niveau 1
07 mars 2015 à 16:18:21

Merci Dark_Chouhartem de m'avoir répondu.
Comme je l'avais dit je suis vraiment nul en prog.
Je vais modifier mon programme.
Encore merci :p

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment