Ich kenne Mathematica nicht. . . schade. Aber die obige Antwort gefällt mir größtenteils.
Dennoch gibt in Berufung auf den Streifen ein großer Fehler ist allein aufzulesen die Antwort (Ich persönlich habe kein Problem mit einer manuellen Einstellung). Es ist ein Beispiel (aufgeführt von Brett - Meister, hier ) vorgestellt , die zeigen , dass sie in Zeiten, das Hemd Muster aufzubrechen. Dann wird es ein komplexeres Muster.
Ich würde einen Ansatz von Form-ID und Farben zusammen mit räumlichen Beziehungen versuchen. Ähnlich wie bei der Gesichtserkennung können Sie nach geometrischen Mustern in bestimmten Verhältnissen suchen. Die Einschränkung ist, dass normalerweise eine oder mehrere dieser Formen verdeckt sind.
Holen Sie sich einen Weißabgleich auf dem Bild und einen Rotabgleich auf dem Bild. Ich glaube, Waldo hat immer den gleichen Wert / Farbton, aber das Bild stammt möglicherweise von einem Scan oder einer schlechten Kopie. Beziehen Sie sich dann immer auf eine Reihe der Farben, die Waldo tatsächlich hat: Rot, Weiß, Dunkelbraun, Blau, Pfirsich, {Schuhfarbe}.
Es gibt ein Hemdmuster und auch die Hosen, Brillen, Haare, das Gesicht, die Schuhe und den Hut, die Waldo definieren. Außerdem ist Waldo im Vergleich zu anderen Personen auf dem Bild eher dünn.
Finden Sie also zufällige Personen, um die Größe der Personen in diesem Bild zu ermitteln. Messen Sie die durchschnittliche Höhe einer Reihe von Dingen an zufälligen Punkten im Bild (ein einfacher Umriss erzeugt einige einzelne Personen). Wenn jedes Ding nicht innerhalb einer Standardabweichung voneinander liegt, werden sie vorerst ignoriert. Vergleichen Sie den Durchschnitt der Höhen mit der Höhe des Bildes. Wenn das Verhältnis zu groß ist (z. B. 1: 2, 1: 4 oder ähnlich nahe), versuchen Sie es erneut. Führen Sie es 10 (?) Mal durch, um sicherzustellen, dass alle Stichproben ziemlich nahe beieinander liegen, mit Ausnahme von Durchschnittswerten, die außerhalb einer Standardabweichung liegen. In Mathematica möglich?
Dies ist Ihre Waldo-Größe. Walso ist dünn, also suchen Sie etwas 5: 1 oder 6: 1 (oder was auch immer) ht: wd. Dies reicht jedoch nicht aus. Wenn Waldo teilweise versteckt ist, kann sich die Höhe ändern. Sie suchen also nach einem rot-weißen Block, der ~ 2: 1 ist. Aber es muss mehr Indikatoren geben.
- Waldo hat eine Brille. Suchen Sie nach zwei Kreisen 0,5: 1 über dem Rot-Weiß.
- Blaue Hosen. Jede Menge Blau bei gleicher Breite in einem beliebigen Abstand zwischen dem Ende des Rot-Weiß und dem Abstand zu seinen Füßen. Beachten Sie, dass er sein Hemd kurz trägt, damit die Füße nicht zu eng sind.
- Der Hut. Rot-weiß in jeder Entfernung bis zur doppelten Spitze seines Kopfes. Beachten Sie, dass es unten dunkles Haar und wahrscheinlich eine Brille haben muss.
- Lange Ärmel. rot-weiß in einem Winkel vom Hauptrot-weiß.
- Dunkles Haar.
- Schuhfarbe. Ich kenne die Farbe nicht.
Jeder von diesen könnte zutreffen. Dies sind auch negative Überprüfungen gegen ähnliche Personen auf dem Bild - z. B. negiert # 2 das Tragen einer rot-weißen Schürze (zu nahe an Schuhen), # 5 eliminiert helles Haar. Außerdem ist die Form nur ein Indikator für jeden dieser Tests. . . Farbe allein innerhalb des angegebenen Abstands kann zu guten Ergebnissen führen.
Dadurch werden die zu verarbeitenden Bereiche eingegrenzt.
Durch das Speichern dieser Ergebnisse wird eine Reihe von Bereichen erstellt, in denen Waldo enthalten sein sollte . Schließen Sie alle anderen Bereiche aus (z. B. wählen Sie für jeden Bereich einen Kreis aus, der doppelt so groß ist wie die durchschnittliche Personengröße), und führen Sie dann den von @Heike festgelegten Prozess aus, indem Sie alle außer Rot entfernen und so weiter.
Irgendwelche Gedanken darüber, wie man das codiert?
Bearbeiten:
Gedanken darüber, wie man das codiert. . . Schließen Sie alle Bereiche außer Waldo-Rot aus, skelettieren Sie die roten Bereiche und beschneiden Sie sie auf einen einzigen Punkt. Machen Sie dasselbe für Waldo Haare braun, Waldo Hosen blau, Waldo Schuhfarbe. Für die Waldo-Hautfarbe ausschließen und dann den Umriss finden.
Als nächstes nicht rot ausschließen, alle roten Bereiche erweitern (viel), dann skelettieren und beschneiden. Dieser Teil enthält eine Liste möglicher Waldo-Mittelpunkte. Dies ist der Marker, mit dem alle anderen Waldo-Farbabschnitte verglichen werden können.
Von hier aus zählen Sie anhand der skelettierten roten Bereiche (nicht der erweiterten) die Linien in jedem Bereich. Wenn es die richtige Zahl gibt (vier, richtig?), Ist dies sicherlich ein möglicher Bereich. Wenn nicht, schließe ich es einfach aus (als Waldo-Zentrum ... es kann immer noch sein Hut sein).
Überprüfen Sie dann, ob oben eine Gesichtsform, oben ein Haarpunkt, unten ein Hosenpunkt, unten ein Schuhpunkt usw. vorhanden ist.
Noch kein Code - liest noch die Dokumente.