Filters

In Processing kan je ingeladen afbeeldingen of het ingeladen webcambeeld in real time bewerken met filters. Die filters hoef je niet zelf te programmeren, ze zijn ingebouwd.

Filter Naam Beschrijving Voorbeeldcode (Processing)
BLUR Maakt het beeld wazig filter(BLUR, 5);
GRAY Converteert het beeld naar grijswaarden filter(GRAY);
INVERT Inverteert de kleuren van het beeld filter(INVERT);
OPAQUE Maakt alle pixels volledig ondoorzichtig filter(OPAQUE);
POSTERIZE Reduceert het aantal kleuren in het beeld filter(POSTERIZE, 5);
THRESHOLD Converteert het beeld naar zwart-wit, gebaseerd op een drempelwaarde filter(THRESHOLD, 0.5);
ERODE Vermindert de helderheid van lichte delen van het beeld filter(ERODE);
DILATE Vergroot de helderheid van lichte delen van het beeld filter(DILATE);

In het onderstaande codevoorbeeld wissel je tussen de diverse filters door de juiste toets op het toetsenbord in te drukken.


import processing.video.*;

Capture cam;

// Variabele om bij te houden welk filter toegepast moet worden

String filterType = "";

void setup() {

  fullScreen();

  String[] cameras = Capture.list();

  if (cameras == null || cameras.length == 0) {

    println("Geen camera gevonden!");

    exit();

  } else {

    cam = new Capture(this, cameras[0]);

    cam.start();

  }

}

void draw() {

  if (cam.available()) {

    cam.read();

  }

  // Teken de camera-afbeelding

  image(cam, 0, 0, width, height);

  // Pas het filter toe op basis van de geselecteerde filterType

  if (filterType.equals("BLUR")) {

    filter(BLUR, 5);

  } else if (filterType.equals("GRAY")) {

    filter(GRAY);

  } else if (filterType.equals("INVERT")) {

    filter(INVERT);

  } else if (filterType.equals("THRESHOLD")) {

    filter(THRESHOLD, 0.5);

  } else if (filterType.equals("POSTERIZE")) {

    filter(POSTERIZE, 5);

  } else if (filterType.equals("ERODE")) {

    filter(ERODE);

  } else if (filterType.equals("DILATE")) {

    filter(DILATE);

  }

}

void keyPressed() {

  // Koppel de toets aan een filter

  if (key == 'b' || key == 'B') {

    filterType = "BLUR";

  } else if (key == 'g' || key == 'G') {

    filterType = "GRAY";

  } else if (key == 'i' || key == 'I') {

    filterType = "INVERT";

  } else if (key == 't' || key == 'T') {

    filterType = "THRESHOLD";

  } else if (key == 'p' || key == 'P') {

    filterType = "POSTERIZE";

  } else if (key == 'e' || key == 'E') {

    filterType = "ERODE";

  } else if (key == 'd' || key == 'D') {

    filterType = "DILATE";

  } else if (key == 'n' || key == 'N') {

    // 'n' om het filter uit te schakelen

    filterType = "";

  }

}



Volgende pagina