In dieser Arbeit wird ein neuer Ansatz zur automatischen Erkennung und Extraktion von Text in Videobildern präsentiert. Als Bildquelle können Bilder in Graustufen oder in Farbe dienen, die in einem der folgenden Grafikformate vorliegen müssen: BMP, GIF, JPG, PCX, PNG, PSD, RLE, TGA, TIF. Die in den Videobildern vorliegenden Textinformationen werden extrahiert und so aufbereitet, dass sie von einer optischen Zeichenerkennung (OCR) weiterverarbeitet werden können. <p> Dazu ist zunächst das Auftreten von Text im Videomaterial möglichst präzise zu lokalisieren. In einem Vorverarbeitungsschritt wird als Erstes überprüft, ob das Bild als Farbbild vorliegt. Ist das der Fall, muss das Bild durch den Algorithmus in ein Grauwertbild konvertiert werden. Durch einen Cannyoperator werden dann die Bildkanten detektiert und daraus ein Filterbild generiert. <p> Mit Hilfe der sich von ihren Nachbarpunkten maximal unterscheidenden Blickpunkte wird aus dem so errechneten Kantenbild ein zeilenorientiertes Histogramm erstellt. Aus den lokalen Maxima dieses Histogramms werden die Textkandidaten als Intervalle mit den entsprechenden Koordinaten ermittelt. Für die Berechnung nicht relevante Bildzeilen werden aus dem Filterbild entfernt. Konnten die Textkandidaten dedektiert werden, wird die Berechnung abgebrochen. Andernfalls wird das Kantenbild binarisiert, vorhandene Lücken im binarisierten Bild werden ausgefüllt und isolierte Bildpunkte werden gelöscht. In einem weiteren Schritt werden die Textkandidaten genau selektiert und dann aus dem Quellbild extrahiert. <p> Zuletzt wird der Kontrast der Textkandidaten zum Hintergrund adaptiv erhöht, um die Lesbarkeit zu erhöhen. Mit dem so errechneten Teilbild können die extrahierten und aufbereiteten Intervalle durch eine Zeichenerkennungssoftware auf Text untersucht werden. Das errechnete Bild kann dazu zur Weiterverarbeitung abgespeichert werden. <p> Um Unabhängigkeit von einer speziellen Rechnerarchitktur und Portabilität des Algorithmus zu gewährleisten, wurde das Programm in Java verfaßt. Nachteile gegenüber anderen kompilierbaren Programmiersprachen bezüglich der Performance treten bei Einsatz eines Just-in-Time-Compilers nur in geringem Umfang auf. |