Handherkenning met Processing
In dit voorbeeld laden we de OpenCV-bibliotheek in Processing om handgebaren te herkennen in de app. We tekenen op de plaats van de handen in het webcambeeld een vierkant.
Om dit project te laten werken, moeten we drie stappen ondernemen:
- Installeer de Processing Video-library.
- Installeer de OpenCV-library voor Processing.
- Plaats hand.xml in de juiste map in Processing.
Processing Video
- Klik op Schets / Bibliotheek importeren / Manage libraries.
- Een nieuw venster gaat open.
- Voer "video" in in het zoekveld.
- Klik op ENTER
- Selecteer Video Libarry for Processing 4.
- Klik onderaan op Install.
OpenCV
- Klik op Schets / Bibliotheek importeren / Manage libraries.
- Een nieuw venster gaat open.
- Voer "video" in in het zoekveld.
- Klik op ENTER
- Selecteer OpenCV for Processing.
- Klik onderaan op Install.
Hand.xml
- Ga naar
Documentenop je computersysteem. Blader naar de map
Processing/libaries/opencv_processing/libary/cascade_files
- Download hand.xml via deze link https://www.leerschool.be/dl2.php?f=hand.xml
- Plak hand.xmlin die map.
Processingcode
Plak onderstaande code in een nieuwe "sketch" in Processing.
import gab.opencv.*;
import processing.video.*;
import java.awt.Rectangle; // Dit importeert de Rectangle klasse
Capture cam;
OpenCV opencv;
void setup() {
size(640, 480);
// Webcam instellen
cam = new Capture(this, 640, 480);
cam.start();
// OpenCV instellen met aangepaste cascade voor handdetectie
opencv = new OpenCV(this, 640, 480);
opencv.loadCascade("hand.xml"); // Zorg ervoor dat hand.xml in de sketchmap staat
}
void draw() {
if (cam.available()) {
cam.read();
}
image(cam, 0, 0);
// Handdetectie uitvoeren
opencv.loadImage(cam);
Rectangle[] hands = opencv.detect();
noFill();
stroke(0, 255, 0);
for (int i = 0; i < hands.length; i++) {
rect(hands[i].x, hands[i].y, hands[i].width, hands[i].height);
}
}