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:

  1. Installeer de Processing Video-library.
  2. Installeer de OpenCV-library voor Processing.
  3. Plaats hand.xml in de juiste map in Processing.

Processing Video 

  1. Klik op Schets / Bibliotheek importeren / Manage libraries. 
  2. Een nieuw venster gaat open.
  3. Voer "video" in in het zoekveld. 
  4. Klik op ENTER
  5. Selecteer Video Libarry for Processing 4.
  6. Klik onderaan op Install. 

OpenCV

  1. Klik op  Schets / Bibliotheek importeren / Manage libraries. 
  2. Een nieuw venster gaat open.
  3. Voer "video" in in het zoekveld. 
  4. Klik op ENTER
  5. Selecteer  OpenCV for Processing.
  6. Klik onderaan op Install. 

Hand.xml  

  1. Ga naar Documentenop je computersysteem. Blader naar de map Processing/libaries/opencv_processing/libary/cascade_files 
  2. Download hand.xml via deze link  https://www.leerschool.be/dl2.php?f=hand.xml
  3. 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);
 
  }
}
Volgende pagina