Poniżej przedstawiam kod programu realizujący detekcję twarzy w wybranym obrazie. W miejscu poprawnie wykrytej twarzy rysowana jest maska.
import java.sql.ResultSet;
import monclubelec.javacvPro.*;
import java.awt.*;
PImage img;
PImage mask;
Rectangle[] faceRect;
OpenCV opencv;
void setup()
{
img = loadImage("dreamteam.jpg");
//initialise OpenCV
opencv = new OpenCV(this);
opencv.allocate(img.width, img.height);
opencv.copy(img);
opencv.cascade("C:/opencv/data/haarcascades", "haarcascade_frontalface_alt.xml");
size (opencv.width(), opencv.height());
image(opencv.getBuffer(),0,0);
faceRect = opencv.detect(true);
println("Znaleziono " + faceRect.length + " twarzy.");
for( int i=0; i<facerect.length;i++ )
{
println(faceRect[i].x + "," + faceRect[i].y+","+ faceRect[i].width+ "," + faceRect[i].height);
mask = loadImage("mask.png");
mask.resize(faceRect[i].width,faceRect[i].height);
image(mask,faceRect[i].x,faceRect[i].y);
}
saveFrame("dreamteamMasks.jpg");
noLoop();//stop
}
void draw()
{
}
Pliki do pobrania tutaj.


Thanks for helpful article!
OdpowiedzUsuń