Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab

17 mai 2019 : accident de la base de données : plus d'infos

#16 2015-12-14 12:04:16 Re : Segmentation

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Segmentation



citation :

Ca me parle pas du tour :p

Mushussu te décris juste un moyen de repérer le fond de l'image, compte tenu du fait que les couleurs des objets ne sont, elles, pas parfaitement uniformes.
L'idée est de remplacer le fond par du blanc et le reste par du noir.


L'Amour au Peuple !

Hors ligne

 

#17 2015-12-14 12:24:07 Re : Segmentation

tintin02100
membre
Date d'inscription: 2015-12-09
Messages: 14

Re: Segmentation



Oui je dois passer par niveau de gris smile

Hors ligne

 

#18 2015-12-14 14:44:50 Re : Segmentation

tintin02100
membre
Date d'inscription: 2015-12-09
Messages: 14

Re: Segmentation



J'ai réussi à stocker les pixels avec ta fonction. Et à récupérer certaines images. Il ne me les récupères pas toutes.
J'ai le droit a un jolie message d'erreur de java tongue

An OutOfMemoryError means that your code is either using up too much memory
because of a bug (e.g. creating an array that's too large, or unintentionally
loading thousands of images), or that your sketch may need more memory to run.
If your sketch uses a lot of memory (for instance if it loads a lot of data files)
you can increase the memory available to your sketch using the Preferences window.

Hors ligne

 

#19 2015-12-14 23:18:39 Re : Segmentation

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Segmentation



Est-ce que tu as essayé de faire ce que le message te suggère ?

citation :

you can increase the memory available to your sketch using the Preferences window


L'Amour au Peuple !

Hors ligne

 

#20 2015-12-15 00:23:47 Re : Segmentation

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 798

Re: Segmentation



C'est une fuite en avant Olivier, c'est comme un bol de noix de cajou dans une réunion de la fête des 0 et des 1. Tu auras beau en rajouter il sera toujours vide.
C'est à la racine qu'il faut attaquer. Si tu cherches toutes les couleurs disponibles, il y en a beaucoup, trop pour la mémoire. Dans un post précédent j'en avais plus de 2000 donc si tu créé 2000 images il va râler le processeur.
Il faut distinguer ce qui est le fond et ce qui ne l'ai pas.
J'ai créé une méthode pour transformer les couleurs en noir et en blanc :

PImage detectionFond(PImage img) {
  PImage travail = img.get();
  color fond = img.pixels[0];
  // 
  boolean test = true;
  for (int i = 0; i < img.width; i++) {
    if (img.pixels[i] != fond) {
      test = false;
    }
  }
  if (!test) {
    println("Pas de couleur de fond");
    return null;
  }
  println(red(fond) + " " + green(fond) + " " + blue(fond));
  // Elaboration de la copie de travail
  for (int i = 0; i < img.pixels.length; i++) {
    if (img.pixels[i] == fond) {
      travail.pixels[i] = color(255);
    } else {
      travail.pixels[i] = color(0);
    }
  }
  return travail;
}

Ensuite tu peux appliquer la moulinette. Pour finir j'ai fait la méthode pour sauvegarder les images.
Attention, dans l'image des carrés noirs, rouges et bleus le fond n'est pas uniforme. Des micro-variations empêchaient de sortir un résultat. Donc j'ai lissé le fond.

Si tu as des questions, n'hésite pas.

Hors ligne

 

#21 2015-12-15 00:38:08 Re : Segmentation

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Segmentation



citation :

C'est une fuite en avant Olivier, c'est comme un bol de noix de cajou dans une réunion de la fête des 0 et des 1. Tu auras beau en rajouter il sera toujours vide.

True. tongue

Tu m'accorderas tout de même qu'il existe une taille de bol théorique suffisamment  grand pour contenir exactement le nombre de noix de cajous ingérables par les convives... big_smile


L'Amour au Peuple !

Hors ligne

 

#22 2015-12-15 00:48:35 Re : Segmentation

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 798

Re: Segmentation



Entres-tu dans les paramètres de cette équation ?

Mais une brillante démonstration a déjà été réalisée avec des cacahuètes. Je pense que les noix de cajou sont plus addictives que les cacahuètes :
https://books.google.fr/books?id=yKc-BA … mp;f=false

Dernière modification par Mushussu (2015-12-15 00:49:20)

Hors ligne

 

#23 2015-12-15 06:38:14 Re : Segmentation

tintin02100
membre
Date d'inscription: 2015-12-09
Messages: 14

Re: Segmentation



Bonjour les gars,

Après avoir bien fait râler le processeur en effet en supprimant les fond, ça passe mieux :p
Je n'ai regardé que ton code après... ça se rejoint xD Comment fais tu ton recadrage? Tu regardes la ou ce n'est pas blanc en fond et prends le minimum et le maximum?

Je dois réaliser un petit rapport xD

Le simple fait de supprimer le fond permet en fait de réduire la taille en mémoire. Mais si je lui donne une image en 4K (c'est juste un exemple), même en retirant le fond, la mémoire pourrait elle cracher?

Sinon à part ca je dois avouer que ton code fonctionne très bien xD
Je vais ajouter le fait de pouvoir choisir de soit garder les couleurs de fond ou toutes les couleurs.

Encore un grand merci à vous deux ^^

A très bien tôt wink

Hors ligne

 

#24 2015-12-15 08:17:43 Re : Segmentation

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 798

Re: Segmentation



citation :

Comment fais tu ton recadrage? Tu regardes la ou ce n'est pas blanc en fond et prends le minimum et le maximum?

Je balaye l'image, les lignes les unes après les autres. Le premier point que je rencontre me donne le y du point de départ du rectangle ensuite je regarde le point le plus à gauche (min) et le point le plus à droite(max) pour le x et la largeur. à chaque fois que je vois un point noir je dit que c'est le dernier, comme cela quand je n'en vois plus la coordonnée y est stockée ce qui me donne la hauteur du rectangle.


citation :

Le simple fait de supprimer le fond permet en fait de réduire la taille en mémoire. Mais si je lui donne une image en 4K (c'est juste un exemple), même en retirant le fond, la mémoire pourrait elle cracher?

A toi de voir l'algorithme le plus robuste.

Hors ligne

 

#25 2015-12-15 09:03:33 Re : Segmentation

tintin02100
membre
Date d'inscription: 2015-12-09
Messages: 14

Re: Segmentation



Ton algo  est bien plus robuste xD

Comme tu l'as fait pour la fonction recadrage, pourrais tu décrire décomposition et séparation?

Décomposition analyse pour chaque pixels, si y les pixels à ses contours sont de la même couleurs. c'est la méthode d'Harrys il me semble?
Séparation lui crée des nouvelles images pour chaque forme et les renvoies?

Hors ligne

 

#26 2015-12-15 09:53:25 Re : Segmentation

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 798

Re: Segmentation



La méthode décomposition n'a plus lieu d'être puisque l'image de travail à été réalisée avec la méthode decompositionFond().

J'ai ajouté des commentaires dans le corps des méthodes pour t'aider.

Hors ligne

 

#27 2015-12-15 12:22:07 Re : Segmentation

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Segmentation



tintin02100 a écrit:

Encore un grand merci à vous deux

Oui. Merci.
T'aider autant n'a pas été de tout repos pour moi mais, je suis vraiment content du résultat. roll

Mussushu a écrit:

Entres-tu dans les paramètres de cette équation ?

Je ne vois absolument pas pourquoi tu poses cette question. big_smile


L'Amour au Peuple !

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2020