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ń