Detección de Rostro y Ojos con Processing
Detección de Rostro y Ojos con las técnicas de Visión Computarizada. OpenCV con Processing 2.2.
Se utilizan transparencias para la sustitución y el enmascaramiento de las partes del rostro afectadas con las coordenadas bidireccionales X, Y.
Código fuente de Processing.
import gab.opencv.*;
import processing.video.*;
import java.awt.*;
Capture video;
OpenCV opencv;
//Imágen
PImage logo;
import java.util.Iterator;
SistemaDeParticulas sdp;
PImage img;
PGraphics pg;
public int cuenta = 2;
public float backgrnd = 0, sonido = 900.5, colF = 0, alfaF = 8.0,
grosor = 9.18, alfa = 13,
colores = 34.74, posicionX, posicionY
;
//letrero Macuilero
float angle = 0.0, speed = 0.49, rad = 100, muevete = -200;
PFont fontA;
void setup() {
fontA = loadFont("Calibri-Light-48.vlw");
textFont(fontA, 48);
//logo = loadImage("Guajolote.png");
//logo = loadImage("coyolxauhqui2Chica.png");
//logo = loadImage("ojoCafe.png");
//logo = loadImage("ojoGato1.png");
logo = loadImage("anime-face.png");
//logo = loadImage("ojoGato2.jpg");
//logo = loadImage("6982.png");
//logo = loadImage("IREM.png");
//logo = loadImage("Patula.png");
//logo = loadImage("rayos1.png");
//logo = loadImage("beamVerde.png");
//logo.resize(100, 60);//telcel
//logo.resize(120, 120);//Guajolot
//logo.resize(120, 70);//IREMCORP
//logo.resize(80, 120); //Patul
logo.resize(130, 130); //Rayos
size(640, 480);
video = new Capture(this, 640/2, 480/2);
opencv = new OpenCV(this, 640/2, 480/2);
opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);
//opencv.loadCascade(OpenCV.CASCADE_NOSE);
//opencv.loadCascade(OpenCV.CASCADE_MOUTH);
//opencv.loadCascade(OpenCV.CASCADE_EYE);
video.start();
}
void draw() {
////////////////////////La OpenCV
scale(2);
opencv.loadImage(video);
image(video, 0, 0 );
noFill();
stroke(0, 255, 0);
strokeWeight(3);
Rectangle[] faces = opencv.detect();
println(faces.length);
for (int i = 0; i < faces.length; i++) {
//println(faces[i].x + "," + faces[i].y);
//logo.draw(100, 100);
//pushMatrix();
//rotate(30);
//image(logo, faces[i].x, faces[i].y ); //Patul
//logo.resize(faces[i].width*2, faces[i].height*2);
//image(logo, faces[i].x, faces[i].y); //Rayos
logo.resize(145, 140); //Rayos
image(logo, faces[i].x+0, faces[i].y+10); //Rayos
//popMatrix();
//image(logo, faces[i].x -120, faces[i].y - 70); //IREM
rect(faces[i].x, faces[i].y, faces[i].width, faces[i].height);
//posicionX = faces[i].x - 50;
//posicionY = faces[i].y - 50;
//sdp = new SistemaDeParticulas(0, new PVector(posicionX, posicionY));
//sdp.corre();
//for(int p=0; p<15; p+=cuenta) {
//blendMode(ADD);
//blendMode(SUBTRACT);
//blendMode(LIGHTEST);
//blendMode(DARKEST);
//blendMode(DIFFERENCE);
//blendMode(EXCLUSION);
//blendMode(MULTIPLY);
//sdp.addParticula();
//}
}
macuilismo();
}
void captureEvent(Capture c) {
c.read();
}
void keyPressed() {
if (keyCode == ENTER) {
saveFrame("miOpenCVLiveCam-####.png");
}
}
Comentarios
Publicar un comentario