Entwickler-Ecke
Multimedia / Grafik - String (Zahl) in Image finden?
Christoph1972 - Sa 13.02.10 15:59
Titel: String (Zahl) in Image finden?
Hallo zusammen,
ich suche eine Möglichkeit, eine Zahl mit dessen Position in einem Image zu finden. Bei der Internetrecherche bin ich auf diverse, kostenpflichtige OCR (Optical Character Recognition) Tools gestolpert. Diese konnten Text in Images zwar in einen String umwandeln, jedoch musste die Position des Textes bekannt sein. In meinem Fall variiert die Position des Textes jedoch. Daher suche ich eine Methode, die Zahlen in einem Image finden kann und dessen Position zurückgibt.
Hat hier jemand eine Idee, wie ich das realisieren könnte?
danielf - So 14.02.10 14:49
Hallo,
da kannst einfach sequentiell alle Bereiche eines Bildes absuchen und bei einem sinnvollen Ergebnis die Position zurück geben. Ob das nun die Library für dich macht oder du selbst ist ja egal.
Gruß Daniel
danielf - So 14.02.10 15:43
Also ist es nicht dein Problem die Position der Zahl zu finden, sondern die Zahl einwandfrei zu erkennen? Das ist natürlich schwieriger... aber auch abhängig von deiner Quelle. Wenn du ein "saubere" Quelle hast und du nur Zahlen suchst gibt es frei OCR-Egines die eine DB verwenden und somit ein 100% Ergebniss erzielen.
Christoph1972 - So 14.02.10 15:56
Ich benötige die Position und ein genaues Ergebnis. Erst muss eine Zahl identifiziert werden, dann beötige ich diese und dessen Position, damit ich an der entsprechenden Stelle weitere Informationen einfügen kann. In der Grafik können bis zu 15 Zahlen stehen.
Breakdowncookie - Mo 15.02.10 17:02
Wie sehen diese Zahlen denn aus? Sind sie immer in der gleichen Schriftart und -größe oder sind sie gar rotiert? Ist das Bild eingescannt oder am PC erstellt? Wenn sie ganz normal in einem bekannten Font zur Verfügung stehen, wäre das gut, dann kannst du die einfach Pixel per Pixel abgleichen.
Christoph1972 - Mo 15.02.10 17:40
Hi,
ist immer die selbe Schriftart und Größe, die Ausrichtung ist immer vertikal. Das Image wurde am PC erstellt.
Aber was soll ich denn Pixel per Pixel abgleichen???? Das ganze ist leider nicht so einfach wie man meinen könnte.
danielf - Mo 15.02.10 17:45
Doch ist es, wenn es am PC gemacht wurde und immer die gleiche Schriftart etc. ist, dann kannst du a) Schablonen von jeden einzelnen Zahl erstellen b) diese Schablonen Postion um Position mit dem aktuellen Bild vergleichen. Worin liegt den deines Erachtens noch das Problem?
Breakdowncookie - Mo 15.02.10 17:49
Ich stell mir das folgender Maßen vor:
Da bestimmt ein gewisser Abstand zwischen den Zahlen ist (min. 1 Pixel), lassen sich diese eingrenzen.
Dazu scannst du mit 2 For-Schleifen (for y ... for x ...) durch das Bild und suchst etwas, das von der Hintergrundfarbe abweicht. (Oder wie sieht der Hintergrund aus?) Wenn du etwas gefunden hast, grenzt du es von oben, unten, links und rechts ein und vergleichst das Resultat Pixel für Pixel (wieder 2 For-Schleifen) mit vorher erstellten Images der 10 möglichen Ziffern.
Feddisch.
Christoph1972 - Mo 15.02.10 18:02
Das könnte gehen, sellt sich nur die Frage, wie Performant das wird. Hast du schon mal ein Image von oben bis unten mit einer Schleife durchlaufen? Da kann man erstmal Kaffeetrinken gehen. Aber mit einer Eingrenzung sollte es auch möglich sein, da die Zahlen eigentlich immer mind. vier Stellen haben. Schade nur, das man bei deinem Vorschlag nicht ohne teachen auskommt. Aber gut, das ist an Projekt für das Wochenende (bzw. die nächsten :gruebel: ), mit einer Flasche Wein :zustimm:
danielf - Mo 15.02.10 18:05
Also das teachen brauchst du nicht, weil die Zahlen ja immer genau so aussehen. Von der Performance her ist es unkritisch. Ich hab schon Mal was ähnliches gemacht. Für die Pixel/Pixel vergleiche kannst du unmanaged Code nehmen. Aber Schritt für Schritt...
Fürs erste würde ich einmal die Schablonen erstellen und dann versuchen eine Zahle zu identifizieren,.. der Rest ist dann nur noch die doppelte For-Schleife.
Breakdowncookie - Mo 15.02.10 18:14
Ansonsten, wenn es sich um ein 12 Megapixel-Bild o.ä. handelt, kannst du auch erstmal downsizen. Das spart enorm Performance.
Christoph1972 - Mo 15.02.10 18:48
Supi, danke für die Zahlreichen Anregungen! Nur frage ich mich, wie es ohne teachen gehen soll, wenn ich die Font Art nicht kenne?
Breakdowncookie - Mo 15.02.10 22:52
Dann erstellst du die Vorlagen nicht aus dem Font, sondern aus deinen Bildern. Werden sich doch bestimmt die Ziffern 0-9 alle finden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!