You are here: Startseite How To Trackingtechnologien Brightness- und Colortracking

Brightness- und Colortracking

Tags
Backlinks
» Tags: "Brightness- und Colortracking" is tagged as
» Backlinks: These Wikipages link to "Brightness- und Colortracking"

Brightness-Tracking

 

 

 

Das Brightness-Tracking ist eine einfache Möglichkeit, mit welcher einzelne, helle Objekte verfolgt werden können (z.B. eine Lichtquelle wie eine Taschenlampe oder eine Leuchtdiode).
Anhand eines Algorithmus wird der Farbwert jedes Pixels aus einem Pixel-Array des neuen Bildes gemessen und mit dem bisher hellsten Punkt verglichen. Sobald ein Pixel heller als der bisher hellste ist, wird er als der neue hellste Punkt gespeichert. Nach dem Auslesen und Auswerten jedes Bildpunktes kann somit erfasst werden, welches der insgesamt hellste Pixel ist (sobald der maximale Helligkeitswert einmal ereicht ist werden keine weiteren Punkte gespeichert). Diese Prozedur wird mit in jedem neuen Frame wiederholt,  sodass eine Lichtquelle verfolgt werden kann.

 

 pixelarray_01

Videobilder werden als Farbwert pixelweise als Array gespeichert. Über den Index i des Array img.pixels[i] kann auf jeden Pixel des Videobildes zugegriffen werden.

 

pixelarray_02

Es kann durch den Index bspw. nicht direkt auf das Pixel in der 2. Zeile, 2. Spalte zugegriffen werden (hier: 5). Um auf das zweidimensionale Bild in konventioneller Weise (kartesische Koordinaten) zugreifen zu können, kann man folgende Formel verwenden: index = y * width + x

 

Processing Source-Code:

 

// BRIGHTNESS TRACKING
// Tracking Technologien Sommersemester 2009

// Ulrich Lang, Thomas Techert, Fabian Gronbach

// An der hellsten Stelle im Kamerabild wird ein roter Punkt gezeichnet.
 
import processing.video.*;
float brightestPixel = 0;
Capture video;
int brightestX = 0;
int brightestY = 0;

void setup() {
  size(640, 480);
  video = new Capture(this, width, height, 24);
  fill(255,0,0);
  smooth();
}

void draw() {
  if (video.available()) {
    video.read();
    video.loadPixels();
    image(video, 0, 0, width, height);
    loadPixels();
   
    for (int i = 0; i < width*height; i++) {
      float pixelBrightness = brightness(video.pixels[i]);
      if (pixelBrightness > brightestPixel) {

        brightestPixel = pixelBrightness;
        brightestY = i / width;
        brightestX =  i - ( brightestY * width);

      }
    }
    brightestPixel = 0;
    ellipse(brightestX, brightestY, 50, 50);

  }
}
 
 

 

An Stelle des hellsten Pixels kann mit Hilfe dieser Methode natürlich auch eine bestimmte Farbe definiert werden, welche verfolgt wird. Durch eine leichte Abwandlung des Algorithmus ist es möglich bestimmte Farbereiche tracken zu können – womit etwa kleine, farbige Objekte verfolgt werden können. (vgl. Color-Tracking).

 

Color-Tracking

Colortrack
Color-Tracking

 

 

Processing Source-Code:

 

// COLOR TRACKING
// Tracking Technologien Sommersemester 2009

// Ulrich Lang, Thomas Techert, Fabian Gronbach

// Press Mouse to select color to track...
// SCRIPT SUCHT IMMER DEN LETZTEN PIXEL IM ARRAY; DER DER FARBE +- SCHWELLENWERT ENTSPRICHT
 
import processing.video.*;
float nearestPixel = 0;
Capture video;
int trackedX = 0;
int trackedY = 0;

// Nach folgender Farbe suchen:
float track_for_r = 0;
float track_for_g = 0;
float track_for_b = 0;
// +-
int threshold = 10;

void setup() {

  size(640, 480);
  video = new Capture(this, width, height, 24);
  fill(255,0,0);
  smooth();
}

void draw() {
  // Farbe aufnehmen
  if (mousePressed == true) {
    rect(mouseX-10, mouseY-10, 20, 20);
    track_for_r= red(video.pixels[(mouseY*width)+mouseX]);
    track_for_g= green(video.pixels[(mouseY*width)+mouseX]);
    track_for_b= blue(video.pixels[(mouseY*width)+mouseX]);
    fill(color(video.pixels[(mouseY*width)+mouseX]));
  }
 

  if (video.available()) {
    video.read();
    video.loadPixels();
    image(video, 0, 0, width, height);
    loadPixels();

    for (int i = 0; i < width*height; i+=5) {
      float valueRed = red(video.pixels[i]);
      float valueGreen = green(video.pixels[i]);
      float valueBlue = blue(video.pixels[i]);

      if (valueRed >= track_for_r - threshold && valueRed <= track_for_r + threshold && valueGreen >= track_for_g - threshold && valueGreen <= track_for_g + threshold && valueBlue >= track_for_b - threshold && valueBlue <= track_for_b + threshold) {

        trackedY = i / width;
        trackedX =  i - ( trackedY * width);

      }
    }

    ellipse(trackedX, trackedY, 50, 50);

  }
}
 
 
 

 

(0 Words, 0 Weblinks, 0 Pictures and 0 Video) - Seite Drucken
Page created by thomas_techert. Last modification on 25.05.2009 11:38
© 2008 Hochschule für Gestaltung, Schwäbisch Gmünd. Impressum
0
» Post-it
jbo
17:24, 30.08.2010

Wireframing Stencils bis zum Umfallen — [link]

14:40, 27.08.2010

Logged in – Wie sozial machen uns Netzwerke? [link]

15:32, 17.08.2010

Medienfassaden Symposium auf der Ars Electronica am 6.9.2010
[link]

13:42, 16.08.2010

Designmethodenfinder: [link]

13:11, 14.08.2010

11 Principles of Interaction Design Explained [link]

13:55, 12.08.2010

5 indispensable skills: [link]

11:05, 30.07.2010

Sonys 360° 3D Display Prototyp [link]!

jbo
09:26, 30.07.2010

kleine Sammlung für die iPhone Entwicklung — [link]

10:37, 28.07.2010

some more history: Brief history of data visualization [link] (via. flowingdata)

17:08, 26.07.2010

Design Is History [link]

09:37, 26.07.2010

IDEO Method Card iPhone Application
[link]

10:07, 12.07.2010

Interactiondesign in Seattle (Washington State) - vielleicht eine Möglichkeit fürs Auslandsemester
[link]

00:12, 09.07.2010

mouse-less?
intelligenter einsatz von infrarot.
[link]

10:21, 07.07.2010

bilderkennung in der küche

[link]

21:08, 03.07.2010

Ich bin begeistert von der Wireframing Software Balsamiq: [link]

Wäre schön wenn wir dafür Hochschul-Lizenzen bekommen könnten.

11:19, 03.07.2010

Der beste Artikel über Usability den ich bisher gelesen habe: [link]

20:15, 02.07.2010

Sprachsteuerung erschreckend gut. Siri iPhone App (US only) [link]

17:52, 02.07.2010

Bauhaus Interaktiv
[link]

jb
09:39, 02.07.2010

Von .cn zu .中国
[link]

07:15, 01.07.2010

Orginal...[link]

 
» Inhaltliche Nähe zu "Brightness- und Colortracking"