tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
494
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    miras miras ist offline Rookie
    Registriert seit
    Mar 2005
    Beiträge
    5
    Hy,
    Ich möchte mithilfe von Java den Inhalt eines Bildes analysieren. Die Bilder beinhalten immer einen Text mit den gleichen Schlüssel und einem Wert.

    Beispiel Autobrief: Schlüssel PS -> Wert xxx PS.
    Gibt es eine Möglichkeit ein Bild nach einem Schlüssel, hier PS, auszuwerten********
    Ich muss gestehen das ich in diesem Bereich noch absolut keine Ahnung habe....

    Ziel des ganzen ist ein Program, welches eingescannte Bilder (hier z.B. eines Autobriefes)
    analysiert und die gewonnen Werte dann weiternutzen kann.

    Vielen Dank für die Hilfe
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,
    ja es gibt eine Möglichkeit das zu machen. Dafür musst du den ByteCode des Bildes analysieren. Dieser besteht immer aus den Blöcken (xxx (rot), xxx (grün), xxx (blau)). Wenn du diese Blöcke zusammenführst, entseht dein Bild. Was du jetzt machen musst, ist die Schrift via den FarbByteCode zu finden.

    So ungefähr siet ein ByteCode eines Bildes aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,255,255,255,255,255,255,255,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0
    Das würde jetzt bei diesem Beispiel ein Bild mit einem Schwarzen Rahmen und weißen Inhalt sein. 11px Hoch & 4px Breit.

    Ich sag dir gleich, dass das wirklich nicht einfach ist.

    Grüße

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Du müsstest am besten nach vorgefertigten Bibliotheken zur Schrifterkennung suchen. Selbst eine zu schreiben dürfte ziemlich lange Dauern. Alternativ könntest du, wenn immer die gleiche Schriftart vorliegt, eine einfacherere Mustererkennung durchführen.
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  4. #4
    SE Tutorials.de Gastzugang
    Also wenn es um Mustererkennung in Bild-Daten geht solltest du dir mal das Thema Houghman-Transformation ansehen. Sehr kompliziert , viel Mathe , aber das sehr effektiv und genau *erfolgsrate bei über 90%*.
    Wenn es etwas einfacher sein darf : mit sog. Raster-Matrizen über das eingescannte Bild gehen. Dafür hätte ich sogar noch Code rumliegen *ziemlich unsauber ... aber funktionsfähig*.
    Das Problem : die Qualität von gescannten Bildern kan stark schwanken so das du erstmal einen Filter bräuchtest der dir aus einem Input-Bild beliebiger Qualität ein Output-Bild generiert welches eine nahezu immer gleiche Qualität hat. Nur dann kannst du effektiv mit Raster-Matrizen arbeiten.
    Dabei arbeitest du aber nicht dierekt mit Bildern sondern mit in der Matrix festgelegten Punkten welche auf vorhandensein im Input geprüft werden. Das spart Rechenzeit , ist aber fehleranfälliger. Je enger die Fix-Punkte in der Matrix angeordnet sind desto größer der Rechenaufwand , desto geringer jedoch die Fehlerquote.

    Allgemein wird dieses verfahren *egal wie es bewerkstelligt wird* als OCR bezeichnet. OCR steht für Optical Character Recognition , auf deutsch etwa Optische Zeichenerkennung.

    Wenn man allerdings bei google nach "java ocr" googled bekommt man einen großteil nur Captcha-Generatoren und deren Gegenstücke Captcha-Braker. Das hilft dir allerdings bei der maschinellen Verarbeitung von Fahrzeugbriefen nur relativ wenig.
     

  5. #5
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Du solltest dir auf jeden Fall Literatur dazu besorgen (oder irgendwie andere theoretische Grundlagen, z.B. an Unis).

    Lehrstuhl für Mustererkennung der Uni Erlangen-Nürnberg: http://www5.informatik.uni-erlangen.de/
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    suche mal nach OCR Form Processing, oder OCR gestützte Formularverarbeitung, maschinelle Formularverarbeitung.

    Ansonsten würde ich versuchen eine Bibliothek zu finden, die OCR Funktionalität mitbringt (oder zumindest die Grundfunktionalität für Bildanalyse bietet) statt diese selber zu entwickeln. Schau dir mal http://code.google.com/p/tesseract-ocr/ an. Dafür gibts Java JNI: http://code.google.com/p/tesjeract/ bzw. JNA Wrapper: http://tess4j.sourceforge.net/

    Ansonsten wäre OPENCV (http://opencv.willowgarage.com/wiki/) sicherlich auch einen Blick wert.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  7. #7
    miras miras ist offline Rookie
    Registriert seit
    Mar 2005
    Beiträge
    5
    Vielen Dank für die Antworten, ihr habt mir sehr weitergeholfen.

    THX
     

  8. #8
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Keine Ursache. Kannst du das Thema dann bitte noch als erledigt markieren, Danke.
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. Gescanntes Dokument mit Rauschen : Störungen reduzieren
    Von Dumm wie Brot im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 09.12.07, 23:58
  2. kann gescanntes bild nicht bearbeiten...
    Von maroclips im Forum Photoshop
    Antworten: 2
    Letzter Beitrag: 23.09.07, 10:27
  3. Gescanntes Bild an Referenzbild anpassen
    Von micha im Forum Sonstige Grafik-Programme
    Antworten: 0
    Letzter Beitrag: 26.12.06, 18:33
  4. Eingabe analysieren
    Von Freak im Forum PHP
    Antworten: 3
    Letzter Beitrag: 25.02.06, 10:06
  5. Antworten: 2
    Letzter Beitrag: 01.05.05, 15:27

Stichworte