Cannibal Caniche

Free as a bernard l'ermitte => Les yeux => Discussion démarrée par: JKP le février 18, 2011, 16:27:15 pm

Titre: Bgucore Jpeg
Posté par: JKP le février 18, 2011, 16:27:15 pm
*****************

(http://jkp.antisocial.be/images/petit lapin qui pisse derrière la tente.jpg)

**********

(http://jkp.antisocial.be/images/rennes.jpg)

**********

(http://jkp.antisocial.be/images/bayrou.jpg)

**********

(http://jkp.antisocial.be/images/deschamps.jpg)

Code Source

On prend un film statique, on le transforme en images et on pioche des bouts d'image et on les assemble
A partir d'une idée d'[url=http://yamatierea.org/papatchs/#quevillonnage]Olivier Baudu[/url]


Transformation d'un film en images
ffmpeg -i movie.avi ./pnm/%d.pnm


#!/usr/bin/perl

#my $fichier1 = 0;
my $nombredefichiers = `ls ./pnm/*.pnm | wc -l`;
my $count = 650;

my $j=0;while($j<50)
{
my ($sec,$min,$hour) = localtime(time);
my $date = $sec."-".$min."-".($hour);
        my $i=0;while($i<=1221135)
        {
        $fichier=int(rand($nombredefichiers));
        `dd if=./pnm/$fichier.pnm of=final-$date.pnm bs=1 count=$count
        skip=$i seek=$i`;
        $i+=$count;
        }
$j++;
}

Titre: Bgucore Jpeg
Posté par: vendredi le février 18, 2011, 16:33:33 pm
je comprends pas trop comment il marche ton code, mais le résultat est ultra classe!
Titre: Bgucore Jpeg
Posté par: JKP le février 18, 2011, 16:39:07 pm
merci

j'insiste pour expliquer l'algorithme
film statique --->>> plein d'images

tu prends premiere ligne image A + seconde ligne image B + troisieme ligne image C
et comme le décor est statique cela brouille que ce qui bouge

sur codelab, ils avaient suggéré de le faire sur du porno, avis aux inspirés.
Titre: Bgucore Jpeg
Posté par: vendredi le février 18, 2011, 16:45:21 pm
oui ça j'avais compris le résultat est vraiment bien du coup ça fonctionne en  à mort avec les discours politiques... c'était plus comment on se sert du code que je comprend pas.
Titre: Bgucore Jpeg
Posté par: JKP le février 18, 2011, 16:59:49 pm
ok
il faut le lancer sous linux

je commente chaque ligne
#!/usr/bin/perl

#my $fichier1 = 0;
my $nombredefichiers = `ls ./pnm/*.pnm | wc -l`; //donne le nombre de fichiers en entree
my $count = 650; // le buffer de copie

my $j=0;while($j<50)  // boucle pour faire 50 images
{
my ($sec,$min,$hour) = localtime(time);  // obtenir la date
my $date = $sec."-".$min."-".($hour);
        my $i=0;while($i<=1221135) //boucle pour construire une image
        {
        $fichier=int(rand($nombredefichiers));  // on selectionne une image en entree au hasard
        `dd if=./pnm/$fichier.pnm of=final-$date.pnm bs=1 count=$count  
        skip=$i seek=$i`;  // on copie count de donnes a partir du fichier $fichier.pnm à la position ( skip ) dans le fichier final-date à la position seek
        $i+=$count; on augmente notre compteur
        }
$j++;  // compteur pour produire 50 fichiers
}

voila
voila
Titre: Bgucore Jpeg
Posté par: bryanbeast le février 18, 2011, 17:14:48 pm
smiley14  smiley14  smiley14
super rendu!
Titre: Bgucore Jpeg
Posté par: mysh3l le février 18, 2011, 17:56:28 pm
cool!
C'est toi qui gère et les coordonnées et la dimension des glitchs ou non.
Merci aussi pour Jérôme Leroy!
Titre: Bgucore Jpeg
Posté par: JKP le février 18, 2011, 20:28:34 pm
Citation de: "mysh3l"
cool!
C'est toi qui gère et les coordonnées et la dimension des glitchs ou non.
Merci aussi pour Jérôme Leroy!



putain
j'ai réfléchi à comment répondre à ta question et j'ai trouvé une solution, normalement cela donnera des images encore plus cool.
je teste cela ce week end

merci myshel pour ta question.
Titre: Bgucore Jpeg
Posté par: pilami le février 18, 2011, 21:05:19 pm
mortel ca !!!

maintenant il faut que tu le fasses pour du temps réel (jitter?)=)
Titre: Bgucore Jpeg
Posté par: vendredi le février 19, 2011, 00:48:04 am
j'aimerais essayer avec un paysage filmé en fixe où yaurait juste des arbres qui bougent avec le vent.
Titre: Bgucore Jpeg
Posté par: mysh3l le février 19, 2011, 16:25:57 pm
si tu ponds un truc qui le fait en temps réel et qu'il existe quelquechose sur Linux dans le style de résolume(surtout qui prends les swf), je suis presque prêt à apsser sous Linux
Titre: Bgucore Jpeg
Posté par: Staross le février 19, 2011, 17:48:54 pm
On peut assez facilement faire des trucs similaires avec Processing (qui tourne sur toutes les plateformes), après en temps réel je sais pas ce que ça donnerait. Dites si vous voulez le code.
Titre: Bgucore Jpeg
Posté par: JKP le février 20, 2011, 11:44:30 am
olivier baudu sur lequel j'ai pondu l'idée le fait en temps réel sur du pure data.
http://codelab.fr/2142

sinon n'hésitez pas à venir en discuter sur codelab, pilami vient de nous rejoindre
Titre: Bgucore Jpeg
Posté par: raklor le février 21, 2011, 10:59:49 am
bonjour,
je suis très intéressé par tout ça, et je profite que le thread 'bgucoer video' ait disparu pour poser de stupides petites questions,
- à quel moment appeler le script.pl quand j'envoie ma conversion ffmpeg dans le bash? dois-je avoir un dossier quelque part avec mes images 1.jpg etc? il y a bien un moment où il faut que j'indique au bash ou à ffmpeg qu'il faut piocher dedans?
- staross, je serais très intéressé par ton script processing, s'il te plait,
- j'ai récup une carte pci pinnacle emptyv avec une puce connexant fusion 878a et une entrée composite, je vais essayer d'interférer sur un signal qui sort d'un vhs avec des pédales d'effets, je vous tiens au courant dès que j'en tire quelque chose (d'ici deux semaines).
Titre: Bgucore Jpeg
Posté par: !dje! le février 21, 2011, 12:24:52 pm
Citation de: "Staross"
On peut assez facilement faire des trucs similaires avec Processing (qui tourne sur toutes les plateformes), après en temps réel je sais pas ce que ça donnerait. Dites si vous voulez le code.


j'ai essayé aussi mais c'est raté je crois

(http://img.over-blog.com/500x666/2/27/62/48/monzoeil5/gros-nichons.jpg)
Titre: Bgucore Jpeg
Posté par: JKP le février 21, 2011, 15:56:05 pm
au lieu de courir aprés des films avec des décors fixes, j'ai pris une image fixe et j'en fait dix images avec du bruit sur les zones que je voudrais pixeliser.

donc le périmètre sur lequel je bouge les images correspond à la taille des glitches
Titre: Bgucore Jpeg
Posté par: JKP le février 21, 2011, 15:59:29 pm
Citation de: "raklor"
bonjour,

- à quel moment appeler le script.pl quand j'envoie ma conversion ffmpeg dans le bash?

apres
d'abord ffmpeg video en pnm
ensuite placement dans le repertoire ./pnm puis lancement du script

Citation de: "raklor"

dois-je avoir un dossier quelque part avec mes images 1.jpg etc? il y a bien un moment où il faut que j'indique au bash ou à ffmpeg qu'il faut piocher dedans?

c du pnm, il faut que tu les mettes dans le repertoire pnm
Titre: Bgucore Jpeg
Posté par: JKP le février 21, 2011, 16:01:19 pm
Citation de: "mysh3l"
si tu ponds un truc qui le fait en temps réel et qu'il existe quelquechose sur Linux dans le style de résolume(surtout qui prends les swf), je suis presque prêt à apsser sous Linux


je ne suis malheureusement pas assez fort en pure data mais il faudrait reprendre le code d'olivier et selectionner une zone à pixeliser.

a suivre
demande sur codelab, on ne sait jamais
quand au swf, c super mal barré
Titre: Bgucore Jpeg
Posté par: Staross le février 21, 2011, 18:48:03 pm
Citer
- staross, je serais très intéressé par ton script processing, s'il te plait,


Voilà, Il te faut un dossier à coté du script processing avec les images qui viennent d'une vidéo ou d'un gif (genre 1.png, 2.png, etc...), y'a pleins de petits programmes pour faire ça.

Ensuite faut entrer le nom du dossier (par exemple ici im8) : String dir = "im8";

Il faut aussi changer l'extension des images (ici c'est .bmp) :

return name.toLowerCase().endsWith(".bmp");

C'est tout.


Citer
String dir = "im8";

PImage[] images;

////setup
void setup() {  

  java.io.File folder = new java.io.File(sketchPath + "\\" + dir);
  java.io.FilenameFilter jpgFilter = new java.io.FilenameFilter() {
    boolean accept(File dir, String name) {
      return name.toLowerCase().endsWith(".bmp");
    }
  };

  String[] filenames = folder.list(jpgFilter);
  images = new PImage[filenames.length];

  for (int i = 0; i < filenames.length; i++) {
    images = loadImage(sketchPath + "\\" + dir + "\\" + filenames);
  }

  size(images[0].width, images[0].height,P2D);  

  noLoop();
}

////draw
void draw() {  

  loadPixels();

  int ind,y;
  y =0;
  for (int x = 0; x < images[0].width; x++ ) {

    //          if(random(0,1) < 0.5)
    //      {
    //           ind = images.length-1 - ceil( float(images.length-1) * float(x) / float( images[0].width));
    //      } else {
    //           ind =  ceil( float(images.length-1) * float(x) / float( images[0].width));
    //      }

    //      if(random(0,1) < 0.5)
    //      {
    //           ind = images.length-1 - ceil( float(images.length-1) * float(y) / float( images[0].height));
    //      } else {
    //           ind =  ceil( float(images.length-1) * float(y) / float( images[0].height));
    //      }

    for ( y = 0; y < images[0].height; y++ ) {


      ind =  int ( 1*(images.length-1) * float(y) / images[0].height );

      //ind =  int ( 2.56*(images.length-1) * float(y) / images[0].height );

      //ind = ind + round( random(-10,10) );
      ind = ind%(images.length-1);

      PImage img = images[ind];

      int loc = x + y*img.width;

      float r = red (img.pixels[loc]);
      float g = green (img.pixels[loc]);
      float b = blue (img.pixels[loc]);

      color c = color(r,g,b);
      pixels[loc] = c;
    }
  }

  updatePixels();  

  save("out.png");
}
Titre: Bgucore Jpeg
Posté par: raklor le février 21, 2011, 19:12:09 pm
cool! merci beaucoup!
Titre: Bgucore Jpeg
Posté par: mysh3l le février 21, 2011, 20:53:05 pm
Citation de: "JKP"
Citation de: "mysh3l"
si tu ponds un truc qui le fait en temps réel et qu'il existe quelquechose sur Linux dans le style de résolume(surtout qui prends les swf), je suis presque prêt à apsser sous Linux


je ne suis malheureusement pas assez fort en pure data mais il faudrait reprendre le code d'olivier et selectionner une zone à pixeliser.

a suivre
demande sur codelab, on ne sait jamais
quand au swf, c super mal barré

c'est bien ce que je me disais, je vais finir seul au monde à faire des swf !!!
Titre: Bgucore Jpeg
Posté par: vendredi le février 21, 2011, 21:05:19 pm
peut être que dans 20 ans tu seras hypra cool comme les mecs qui remixent de la vhs aujourd'hui...
Titre: Bgucore Jpeg
Posté par: bryanbeast le février 21, 2011, 21:27:02 pm
Citation de: "vendredi"
peut être que dans 20 ans tu seras hypra cool comme les mecs qui remixent de la vhs aujourd'hui...


 smiley5  smiley14
Titre: Bgucore Jpeg
Posté par: mysh3l le février 22, 2011, 00:38:24 am
Citation de: "vendredi"
peut être que dans 20 ans tu seras hypra cool comme les mecs qui remixent de la vhs aujourd'hui...

vu que je ne suis pas sur facebook, je ne vois pas comment ils verront mon travail... je me sens régressif...
Titre: Bgucore Jpeg
Posté par: JKP le mars 25, 2011, 12:25:48 pm
on continue


http://jkp.antisocial.be/musique/test.avi

le script bientôt
Titre: Bgucore Jpeg
Posté par: bryanbeast le mars 28, 2011, 12:09:55 pm
yop
un type en a fait en flash... je sais plus qui se demandait si c'était possible? Mysh3l?

http://blog.soulwire.co.uk/laboratory/flash/as3-bitmapdata-glitch-generator

y'a les sources et tout apparemment... pas encore testé...
Titre: Bgucore Jpeg
Posté par: mysh3l le mars 28, 2011, 14:45:57 pm
j'avais vu mais je n'avais pas approfondi, je vais regarder merci de me faire une piqure de descente en rappel.