Annonce

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


#1 2011-03-23 20:27:36 Vider le cache Processing

fdrg
membre
Lieu: Strasbourg
Date d'inscription: 2009-10-27
Messages: 22

Vider le cache Processing



Bonsoir à tous,

J’aurais une petite question concernant un code contenant une capture vidéo. Ce dernier ayant une boucle qui modifie la géométrie de l’image grâce à une captation sonore ainsi que des filtres appliqué à la vidéo, fini par ramer. Je souhaiterais savoir s’il est possible de vider le cache de processing à chaque exécution d’une boucle. Background(0) ne fonctionnant pas ni dans void set up() ni dans void draw() ou void captureEvent(Capture video).
En vous remerciant d’avance.

Hors ligne

 

#2 2011-03-23 21:44:02 Re : Vider le cache Processing

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: Vider le cache Processing



Bonsoir,

Qu'est ce que tu entends par "cache de Processing" ? background(0) change la couleur de fond pour du noir, il ne s'agit pas de mémoire cache

Il peut y avoir différents moyens d'optimiser ton code quand il commence à ramer, tout ça dépend de ton code et de ce qu'il utilise spécifiquement smile
 
Limiter les calculs, limiter les parcours de grandes structures de données, limiter la création de multiples objets, etc. Sans le code, c'est difficile à dire, mais dans ton cas, peut-être que c'est la modification de la géométrie, et les calculs que ça engendre qui ralentissent ? Ou alors c'est liée à l'arrivée de l'image capturée ?

Hors ligne

 

#3 2011-03-23 22:23:10 Re : Vider le cache Processing

fdrg
membre
Lieu: Strasbourg
Date d'inscription: 2009-10-27
Messages: 22

Re: Vider le cache Processing



En fait effectivement vider le cache n’est pas vraiment le bon terme. Je pense qu’il s’agit de rafraichir l’image à chaque boucle. Il me semble que c’est la capture vidéo qui fait ramer le code, puisque la modification géométrique n’est pas énorme. J’utilise une camera miniDV. Voici le code :

Code (processing) :

import ddf.minim.*;
Minim minim;
AudioInput in;

import processing.video.*;
Capture video;

float moyenneTemp;
float moyenne;


void setup() {
  size(1024, 768); 
  
  video = new Capture(this, width, height, 60);
  minim = new Minim(this);
  minim.debugOn();

  in = minim.getLineIn(Minim.STEREO, 512);
}


void captureEvent(Capture video){
  video.read();
}


void draw() {
  moyenneTemp = 0;
  moyenne = 0;
    
      for(int i = 0; i < in.bufferSize() - 1; i++){
        println (in.bufferSize());
        moyenneTemp = moyenneTemp + abs(in.left.get(i));
        }
  moyenne = moyenneTemp/in.bufferSize();
  println(moyenne);
     

  float angle = cos(moyenne+1);
  translate(width/2, height/2);
  rotate(-angle);
  image(video, -width/2, -height/2);
  filter(INVERT);
  filter(GRAY);
}

void stop(){

  in.close();
  minim.stop();
  super.stop();
}

J’ai essayé le code en éclaté et apparemment ca fonctionne mais le tout ensemble pose problème. Du coup je cherche un moyen pour qu’à la fin de chaque boucle concernant la vidéo, il y ai une sorte de remise à zéro afin que processing n’ai pas à calculer sans cesse une suite d’images.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024