Was ist neu in Version 6.0

Allgemeines

Bisher unterstützte KADMOS die Erkennung von Einzelzeichen, Zeilen und einspaltigen Texten (Paragraphen). Neu wird die Erkennung (fast) beliebiger Dokumente unterstützt. Einerseits gibt es dazu die Funktion re_layout(), welche in einem Dokument nach Textbereichen sucht und diese in Form der umschreibenden Rechtecke zurückliefert. Mit der umfassenderen Funktion re_page() können Textbereichen Klassifikatoren zugeordnet werden, mit denen dann automatisch für diese Textbereiche eine Erkennung gestartet wird.

KADMOS wird häufig zum Lesen der Kodierzeilen von Pässen und Ausweisen eingesetzt. Ein Problem bereitet hier immer wieder die Bildvorverarbeitung sowie das Auffinden der Kodierzeilen selbst. Für diese Anwendungen wurde eine eigene Funktion rep_idcard() bereitgestellt. Sie liefert die Resultate in der gleichen Form als hätte man rep_do() genau auf den Bildausschnitt der Kodierzeilen angewendet. rep_idcard() ist zusätzlich als Exe oder Binary verfügbar, dass aus der Kommandozeile aufgerufen werden kann: "idcard Bild-Datei Klassifikator". Die Ausgabe erfolgt als Xml-Datei mit gleichem Namen wie die Bild-Datei.

Zur Verbesserung der Erkennungs-Qualität bei Bildern mit unruhigem Hintergrund wurde eine neue Technologie implementiert. Bei gesetztem Parameter OPTIONS_REL_REC_REPEAT werden schlecht erkannte Einzelzeichen noch einmal direkt vom Grau- oder Farb-Bild eingelesen und in Abhängigkeit von ihrer Strichdicke mit veränderten Parametern neu binarisiert.

Neu ist die Ausgabe der Resultate als XML-Datei. Dazu ist nur der Parameter TEXT_FORMAT_XML bei den Funktionen re?_textline() zu setzen. Das gilt auch für die neuen Funktionen rep_text() und page_text(), mit denen die Resultate von rep_do() und re_page() als Text ausgegeben werden können. Die Funktionen re?_textline(), rep_text() und page_text() geben Wortzwischenräume oder Folgen von Leerzeichen nur noch mit einem Leerzeichen aus. Die bisherige Lösung machte in aller Regel keinen Sinn, da bei der Erkennung nicht klar ist, wie breit das für den Ausdruck verwendete Blank ist. Ausser beim Zeilenanfang wird die geschätzte Anzahl von Blanks in RelGraph. leading_blanks nach wie vor zurückgegeben.

Das bisherige Define CODE_UNICODE wurde durch CODE_UTF_16 ersetzt. Das gibt die Möglichkeit, bei späteren Weiterentwicklungen zwischen Microsoft (wchar_t als unsigned short) und Linux (wchar_t als unsigned int) zu unterscheiden. Das neue Define CODE_UTF_32 bezeichnet den 32-Bit Unicode©.

Für MSVC werden werden keine Libraries mit dem Compiler-Schalter /Md (multithreaded dll) mehr ausgeliefert. Diese haben in der Vergangenheit mehrfach zu Problemen geführt, insbesondere beim übergang zu neuen Windows-Versionen. Das betrifft Libraries wie rec_md.lib und rel_md.lib, also diejenigen mit der Endung _md im Dateinamen.