Bonjour,
Je suis en terminale et je dois faire un projet.
Je dois arriver à partir d'une image avec un incendie à isoler l'endroit où il y a l'incendie grâce à la différence des valeurs des pixels et ensuite arriver à déterminer les coordonnées de l'incendie par rapport à l'image.
Merci de votre aide je dois le rendre dans deux semaines.
Hors ligne
Bonjour,
L'idée est de parcourir l'image est cherchant le point de plus grande luminosité ?
Pour récupérer la couleur d'un pixel, il existe la méthode get() :
https://processing.org/reference/get_.html
Pour parcourir les pixels, il faut utiliser deux boucles for() imbriquées une parcourt l'axe des X pendant que l'autre parcourt l'axe des Y.
Ensuite après avoir récupéré la couleur, tu peux utiliser la méthode brightness() :
https://processing.org/reference/brightness_.html
Une variable globale entière initialisée à 0 sera comparée à la valeur de la luminosité, si elle est supérieure alors ce sera la nouvelle valeur et les coordonnées seront stockées.
Si tu as des questions n'hésite pas.
Hors ligne
Merci pour la réponse,
Je pensais utiliser une boucle qui analyserais la valeur de chaque pixel (c'est a dire donner la valeur du rouge, vert et bleu) . Sachant que le rouge sera à 255 au niveau de l'incendie on dit qu'il "sélectionne " le pixel en question.
C'est quoi la valeur globale entière?
Merci d'avance
Hors ligne
Salut à toi !
C'est très difficile comme exercice, et le résultat dépendra notamment de l'environnement de l'incendie et de la résolution de l'image.
Tu as 2 solutions :
- Soit tu analyse chaque pixel à la recherche de la teinte la plus proche d'un coeur d'incendie (rouge/jaune), après tu agrèges les résultats et tu te retrouve avec plusieurs points potentiels de début d'incendie, point dépendant de l'environnement dont je parlais plus haut : si c'est un magasin de jouet (!), tu vas avoir pas mal d'autres rouge/jaune dans l'image,
- Soit, après avoir analysé chaque pixels, extrait chaque points aux couleurs les plus proches de celle du coeur d'un incendie, tu vas devoir également calculer les pixels alentours de chaque point, et potentiellement le dégradé des couleurs environnantes.
... enfin après, si le but c'est juste d'analyser une image précise avec un point précis, ouais tu peux analyser chaque pixel avec la méthode get(), comparer avec la teinte que tu auras choisi comme étant celle le plus proche du rouge, jaune et/ou rouge/jaune.
Après c'est une question de réglage de teinte je pense.
Hors ligne
Bon… Une idée: avant de tracker quoi que soit, essaie d'isoler l'incendie (en enlevant toutes les couleurs qui ne sont ni chaudes, ni lumineuses, puis en faisant ressortir tous les rouges)…
Ensuite, pour le tracking, tu en trouveras dans les exemples de Processing (dossier vidéo je crois).
Dernière modification par jojolaglaise (2016-04-09 14:05:51)
Hors ligne
Bon… J'ai essayé ça (piece jointe) je te laisse constater les limites du programme (le camion de pompier est considéré comme du feu… mais bon hein qui dit fourgon rouge dit flammes, non? )
Dernière modification par jojolaglaise (2016-03-26 17:33:05)
Hors ligne
Je suis débutant dans processing donc je ne comprends pas tout, comment on fait pour créer une boucle qui permettra d'analyser les pixels un par un?
Hors ligne
Je n'arrive pas à utiliser la fonction get.
Hors ligne
Bonjour,
Voici le code pour parcourir tous les pixels d'une image et obtenir leur couleur avec la méthode get():
void exemple() { for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { color c = get(i, j); } } }
Hors ligne
Pages: 1