» codelab : http://codelab.fr/accueil » Forum : Processing : http://codelab.fr/processing » déplacement video : http://codelab.fr/4867 Ceci est la version imprimable d'un sujet du forum, pour retourner à la version complète : déplacement video |
fabrice54 — 2014-03-13 05:54:54 |
Bonjour . Code (P5) :import processing.serial.*; import cc.arduino.*; import processing.video.*; Arduino arduino; int numPixels; int[] previousFrame; Capture video; void setup() { size(640, 480); println(Arduino.list()); arduino = new Arduino(this, Arduino.list()[0], 57600); arduino.pinMode(2, Arduino.OUTPUT); video = new Capture(this, width, height); video.start(); numPixels = video.width * video.height; previousFrame = new int[numPixels]; loadPixels(); } void draw() { if (video.available()) { video.read(); video.loadPixels(); int movementSum = 0; for (int i = 0; i < numPixels; i++) { color currColor = video.pixels[i]; color prevColor = previousFrame[i]; int currR = (currColor >> 16) & 0xFF; int currG = (currColor >> 8) & 0xFF; int currB = currColor & 0xFF; int prevR = (prevColor >> 16) & 0xFF; int prevG = (prevColor >> 8) & 0xFF; int prevB = prevColor & 0xFF; int diffR = abs(currR - prevR); int diffG = abs(currG - prevG); int diffB = abs(currB - prevB); movementSum += diffR + diffG + diffB; pixels[i] = color(diffR, diffG, diffB); previousFrame[i] = currColor; } if (movementSum >3000000) { updatePixels(); arduino.digitalWrite(2,Arduino.HIGH); } else{ arduino.digitalWrite(2,Arduino.LOW); } } } |
Eldire — 2014-03-13 23:20:37 |
Plus de détails seraient les bienvenus mais à priori ce script calcul seulement une quantité de mouvement ou une "différence de changement de couleur" par calque (RGB). |
fabrice54 — 2014-03-14 04:10:14 |
Bonjour. |
Eldire — 2014-03-15 15:40:16 |
En bidouillant 5 pages supplémentaires tu dois pouvoir connaitre le sens :D |
Mushussu — 2014-03-15 20:24:16 |
Bonsoir, |
fabrice54 — 2014-03-16 07:01:15 |
Bonjour. |