Bilderkennung/Mustererkennung

pietpaga

Neues Mitglied
Hallo zusammen,

ich habe folgendes Problem: Ich möchte auf einem Bild Farben und Muster erkennen und diese mit Bildern aus einer Datenbank abgleichen. Die Bilder mit den gleichen oder ähnlichen Farben und Mustern sollen anschließend ausgegeben werden.
Hat irgendjemand Ahnung in dem Bereich und kann Tips geben? Gibt es vielleicht schon ein erprobtes Framework, das man modifizieren könnte?

Ich wäre Euch für jeden Hinweis dankbar!!

Grüße
Henrik
 

RalleYTN

Bekanntes Mitglied
Du kannst ja die Bilder, die du vergleichen willst in BufferedImage Objekte laden und dann jeden Pixel vergleichen.
Wenn zwei Pixel gleich sind, dann kann man einen Wert z.B. "Treffer" immer um einen erhöhen und das Bild mit den meisten Treffern ist dann das zum Ausgangsbild ähnlichste.

Hier mal ein Beispiel:
Java:
int treffer1 = 0;
int treffer2 = 0;
BufferedImage bild = ImageIO.load(new File("bild.jpg"));
BufferedImage bildVergleich1 = ImageIO.read(new File("bild2.jpg"));
BufferedImage bildVergleich2 = ImageIO.read(new File("bild3.jpg"));
int breiteAllerBilder = 100;
int höheAllerBilder = 100;

for(int x = 0; x < breiteAllerBilder; x++) {
    for(int y = 0; y < höheAllerBilder; y++) {
          Color farbeBild = new Color(bild.getRGB(x, y));
          Color farbeBildVergleich1 = new Color(bildVergleich1.getRGB(x, y));
          Color farbeBildVergleich2 = new Color(bildVergleich2.getRGB(x, y));

          if(farbeBild.getRed() == farbeBidVergleich1.getRed() &&
             farbeBild.getGreen() == farbeBildVergleich1.getGreen() &&
             farbeBild.getBlue() == farbeBildVergleich1.getBlue() &&
             farbeBild.getAlpha() == farbeBildVergleich1.getAlpha()) {

                treffer1++;
          }
          
          if(farbeBild.getRed() == farbeBidVergleich2.getRed() &&
             farbeBild.getGreen() == farbeBildVergleich2.getGreen() &&
             farbeBild.getBlue() == farbeBildVergleich2.getBlue() &&
             farbeBild.getAlpha() == farbeBildVergleich2.getAlpha()) {

                treffer1++;
          }
    }
}

Das ist kein fertiger Code und ich habe ihn auch gerade nur nach dem Q&D Verfahren geschrieben. Ich gebe keine Garantie, dass es funktionieren wird, aber ich kann dir sagen, dass dieser Algorithmus nicht auf die Erkennung von Mustern, sondern der Erkennung von Farben lisiert ist.
Ich hoffe ich konnte trotzdem helfen ;)
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Java Themen

Neue Themen


Oben