ReParm
typedef struct ReParm_tag {
long general;
long prep;
short deskew_min;
short filler1;
short noise_diameter_percent;
short noise_diameter_pixel;
short noise_width_percent;
short noise_length_percent;
short noise_width_pixel;
short noise_length_pixel;
short rem_back_gray_delta;
short rem_back_gray_level;
RelGridParm *gridparm;
long gridparm_maxlen;
long typograph;
long filler2;
short line_space, base_line;
short char_space_min;
short char_space_max;
long code;
long options;
long labels_size;
#if defined(__STDC__)
char *labels;
char *rejects;
#else
union {
char *labels;
short *labels2;
};
union {
char *rejects;
short *rejects2;
};
#endif
long alc;
long font;
short reject_limit;
short filler3[3];
long pos;
INT_PTR hookparm;
} ReParm;
Elemente:
general
-
Dieser Parameter steuert die Arbeit von
re?_do().
Wenn GENERAL_PREP_ONLY gesetzt ist, wird nur die Vorverarbeitung durchgeführt.
Wenn GENERAL_LINESHADOW_ONLY gesetzt ist, bricht rec_do() auch nach der
Vorverarbeitung ab, und rel_do() bricht nach der Vorklassifizierung von Hand- und
Maschinendruck ab. Das flag GENERAL_HOOKENGINE_LOADED zeigt nach
re?_init() an, b eine Hook-Engine gefunden und geladen wurde.
Diese Hook-Engine kann mit GENERAL_HOOKENGINE_ON aktiviert werden.
GENERAL_...
GENERAL_LINESHADOW_ONLY steuert die Arbeit von re?_do()
GENERAL_HOOKENGINE_LOADED signalisiert nach re?_init(),
ob eine Hook-Engine gefunden und geladen wurde.
GENERAL_HOOKENGINE_ON aktiviert eine Hook-Engine.
GENERAL_PREP_ONLY die KADMOS-Erkennung kann ausgeschaltet werden.
GENERAL_LINESHADOW_ONLY zu der Vorverarbeitung wird eine Klassifikation durchgeführt,
die KADMOS-Erkennung ist ausgeschaltet.
GENERAL_LINEPOSITION_ONLY es wird nur die notwendige Vorverarbeitung durchgeführt, keine Zeichenerkennung.
GENERAL_FEATURES_ONLY Bei einem nachfolgenden rep_do()-Aufruf wird dann
nach der Merkmalsbildung aufgehört.
GENERAL_HOOKENGINE_LOADED zeigt an ob eine weitere
Erkennungs-Engine geladen wurde.
GENERAL_HOOKENGINE_ON Eine zweite Erkennugs-Engine kann aktiviert werden
GENERAL_*CALL ist zum internen Gebrauch bestimmt
GENERAL_RECALL Maske für RECCALL bis GENERAL_RESPELLCALL
GENERAL_REPMULTITHREADING Threads-Verwaltung
GENERAL_MULTITHREADING Maske für die Multithreading-Parameter
prep
PREP_NOSPACEREMOVAL
Bei den Modulen REC, REL und REP gibt es die Möglichkeit, eine Schmutzentfernung
zu aktivieren. Dabei werden anschliessend die Bilder der Einzelzeichen so ausgeschnitten, dass sie an den Rändern
keine Weiss-Spalten oder -Zeilen haben. Mit PREP_NOSPACEREMOVAL kann diese Weiss-Rand- Entfernung
ausgeschaltet werden.
PREP_NOSPOTREMOVAL
Ausschalten der Fleckentfernung.
Bei der Zeilen-Erkennung wird unter anderem geprüft, ob einzelne Zeichen mit Flecken behaftet sind, die von
ausserhalb in die Zeile ragen. Die Flecken werden normalerweise entfernt. Mit PREP_NOSPOTREMOVAL wird diese
Fleckentfernung ausgeschaltet.
PREP_AUTO_NOISEREDUCTION
Adaptiv gesteuerte Schmutzentfernung.
PREP_SCALING
Ist dieser Wert bei prep gesetzt, und ist in den übergebenen Bildern eine Auflösung angegeben, so werden die
Bilder vor der Erkennung auf eine Auflösung von 300 dpi transformiert. Zeilen- und Einzelzeichenbilder mit mehr als
128 Pixelzeilen werden in jedem Fall verkleinert. Die Wirkung wurde ab Version 4.0i für Bilder ohne Angabe einer
Auflösung erweitert. Ist er gesetzt und die spezifizierte Auflösung xresolution==0 oder
yresolution==0, so werden die übergebenen Bilder in rel_do() oder rec_do() wie
folgt skaliert:
- Bei reinen Handschrift-Klassifikatoren auf eine Zeilenanzahl von 64 Pixel,
- bei Hand+Maschine-Klassifikatoren auf eine Zeilenanzahl von 48 Pixel,
- bei reinen Maschinenschrift-Klassifikatoren auf eine Zeilenanzahl von 32 Pixel.
PREP_RGBTOGRAY_COLORMIN
Mit diesem Parameter werden Farbbilder in Graubilder konvertiert wobei die Farben aufgehellt werden.
vorher:
nachher:
PREP_RGBTOGRAY_COLORMAX
Mit diesem Parameter werden Farbbilder in Graubilder konvertiert wobei die Farben verstärkt werden.
vorher:
nachher: 
vorher:
nachher:
PREP_RGBTOGRAY_COLORGRAY
Mit diesem Parameter werden Farbbilder in Graubilder konvertiert wobei ein Mittelwert zwischen PREP_RGBTOGRAY_COLORMIN
und PREP_RGBTOGRAY_COLORMAX verwendet wird.
PREP_GRAYTOBIN_UNIFORM
Ist dieser Parameterwert gesetzt, so wird die Schwellenbildung nicht adaptiv, sondern mit einer Schwelle für das ganze
Bild durchgeführt. Für gleichmässig ausgeleuchtete Bilder wird das Setzen dieses Wertes empfohlen.
PREP_GRAYTOBIN_*
Diese Parameter erstellen aus einem Graubild ein Schwarz-Weiss-Bild. In fünf Stufen kann die Pixel-Schwärzung des
Ergebnisses eingestellt werden.
| Stufe 1 | PREP_GRAYTOBIN_VERY_THIN | Sehr schwache Schwärzung. |
| Stufe 2 | PREP_GRAYTOBIN_THIN | Schwache Schwärzung. |
| Stufe 3 | PREP_GRAYTOBIN_MEDIUM | Mittlere Schwärzung. |
| Stufe 4 | PREP_GRAYTOBIN_THICK | Starke Schwärzung. |
| Stufe 5 | PREP_GRAYTOBIN_VERY_THICK | Sehr starke Schwärzung. |
Originalbild:
Binarisierung Stufe 1:
Binarisierung Stufe 2:
Binarisierung Stufe 3:
Binarisierung Stufe 4:
Binarisierung Stufe 5:
PREP_BINFILTER_*
Mit diesen Parametern lassen sich Zeichen glätten, ausgefranste Zeichen werden verdickt oder ausgedünnt.
Schmale Objekte wie z.B. Schmutzflecken lassen sich wegfiltern. Nadeldruck kann für die Erkennung aufbereitet werden.
Es sind fünf verschiedene Stufen möglich:
| Stufe 1 | PREP_BINFILTER_VERY_THIN | Glättung mit starker Ausdünnung |
| Stufe 2 | PREP_BINFILTER_THIN | Glättung mit Ausdünnung |
| Stufe 3 | PREP_BINFILTER_MEDIUM | Glättung ohne Ausdünnung |
| Stufe 4 | PREP_BINFILTER_THICK | Glättung mit Verdickung |
| Stufe 5 | PREP_BINFILTER_VERY_THICK | Glättung mit starker Verdickung |
Beispiel Nadeldruck
Originalbild:
Filter Stufe 1:
Filter Stufe 2:
Filter Stufe 3:
Filter Stufe 4:
Filter Stufe 5:
Beispiel Hintergrundschmutz:
Originalbild:
Filter Stufe 1:
Filter Stufe 2:
Filter Stufe 3:
Filter Stufe 4:
Filter Stufe 5:
Beispiel mit allen Binarisierungs- und Filter-Möglichkeiten:
Originalbild: 
Bin → ↓ Filter | 1 | 2 | 3 | 4 | 5 |
| X |  |  |  |  |  |
| 1 |  |  |  |  |  |
| 2 |  |  |  |  |  |
| 3 |  |  |  |  |  |
| 4 |  |  |  |  |  |
| 5 |  |  |  |  |  |
PREP_INPLACE
- Beim Setzen dieses Parameters wird das zur Erkennung bereitgestellte Bild mit dem gefilterten bzw. dem von Grau nach
Schwarz-Weiss gewandelten Bild überschrieben. Somit wird der Zugriff auf das Resultat aus
PREP_BINFILTER_*
und PREP_GRAYTOBIN_* nach der Erkennung möglich.
PREP_SCALING
- transformiert Bilder auf eine Auflösung von 300 dpi.
deskew_min
- Schwellenwert, ab dem eine Aufrichtung erfolgt,
Null bedeutet keine Aufrichtung (Voreinstellung).
filler1
- 8 Byte Alignment.
noise_diameter_percent, noise_diameter_pixel
- Die Module
REC, REL und REP bieten die Möglichkeit,
Schmutz in Abhängigkeit von seinem Durchmesser zu klassifizieren und zu entfernen. Die Angabe kann sowohl relativ
zur Strichdicke der zugrundeliegenden Zeichen als auch absolut in Bildpunkten erfolgen. Sofern das Modul REC
von REL aufgerufen wird, erfolgt die Schmutzentfernung nur in REL, wird REL
von REP aufgerufen, so erfolgt die Schmutzentfernung nur in REP.
noise_width_percent, noise_length_percent,
noise_width_pixel, noise_length_pixel
- In den Modulen
REC, REL und REP kann die Schmutzentfernung nicht
nur über den Schmutz-Durchmesser gesteuert werden, sondern auch über Dicke und Länge des Schmutzes.
Sofern diese Schmutzentfernung relativ zur Strichdicke der zugrundeliegenden Zeichen erfolgen soll, besetze man die
Parameter noise_width_percent und noise_length_percent entsprechend. Für eine absolute
Angabe in Bildpunkten verwende man noise_width_pixel und noise_length_pixel. Die Angaben
unter .._percent und .._pixel wirken additiv, d.h. Schmutz wird dann detektiert und entfernt,
wenn er wenigstens eine der gegebenen Spezifikationen erfüllt.
- 🚧
rem_back_gray_delta
- Hintergrund aus einem Farbbild entfernen - maximaler Unterschied R-G-B als "graues" Pixel
🚧 rem_back_gray_level
- Hintergrund aus einem Farbbild entfernen - Welches ist das hellste Pixel ohne Hintergrundgrau?
*gridparm
- Feld von
RelGridParm-Strukturen.
gridparm_maxlen
- Dieser Parameter beschreibt die Grösse des in der Struktur
ReParm vom aufrufenden
Programm unter gridparm bereitgestellten Speichers zur Aufnahme der Beschreibung zu suchender
Grid-Elemente (Linien, Boxen, Kämme) in Struktureinheiten RelGridParm.
typograph
- Hier können den Modulen
REL oder REP zusätzliche Informationen
zum vorliegenden Schriftgut mitgegeben werden, um die Bearbeitung zu vereinfachen und zu beschleunigen, sofern diese
bekannt sind. Zur vereinfachten Beschreibung wurden dafür in KADMOS.h Konstanten bereitgestellt, die beliebig durch
logisches ODER "|" miteinander kombiniert dem Parameter typograph zugewiesen werden können,
sofern dies sinnvoll ist.
Für REL und REP:
TYPO_PROPORTIONAL
Es kann Proportionalschrift vorausgesetzt werden.
TYPO_EQUIDISTANT
Es kann äquidistante Schrift vorausgesetzt werden.
TYPO_NOLIGATURES
Bei vielen Schriften, insbesondere jedoch bei Handschrift, sind benachbarte Zeichen ineinandergestellt.
Man bezeichnet dies als 'Ligaturen'. Die Segmentierung dieser Ligaturen ist oft ein sehr schwer lösbares Problem und
erfordert besondere Algorithmen. Insbesondere bei äquidistanten Maschinenschriften gibt es jedoch keine Ligaturen,
die entsprechenden Algorithmen können abgeschaltet werden. Dazu setze man diesen Wert.
TYPO_NOTOUCHINGCHARS
Es kann vorausgesetzt werden, dass keine sich berührenden Zeichen vorliegen.
TYPO_NOSEGALTERNATIV
Zu den schwierigsten Aufgaben bei der Zeichenerkennung gehört die Segmentierung der Einzelzeichen.
KADMOS versucht bei schlecht erkannten Zeichen eine erneute, veränderte Segmentierung. Will man dies ausschalten
(etwa bei sehr guten Vorlagen äquidistanter Zeichenteilung) so setze man diesen Wert.
TYPO_4_SEGALTERNATIV TYPO_8_SEGALTERNATIV
Es können 4 bzw. 8 Segmentieralternativen zugelassen werden.
TYPO_KEEPIMG
Bei einer guten Segmentierung ist es nicht mehr möglich, die segmentierten Einzelzeichen durch ihr umschreibendes
Rechteck zu charakterisieren. Falls man also direkt auf die segmentierten Einzelzeichen zugreifen will, muss dieser
Parameterwert bei typograph gesetzt werden. Auf die Einzelzeichen kann dann unter result_image
zugegriffen werden.
TYPO_EXTENDED_SEGMENTATION
Gibt insbesondere bei Maschinenschrift etwa 10% weniger Segmentierfehler, bei etwas längerer Rechenzeit.
filler2
- 8 Byte Alignment.
line_space, base_line
- Diese Parameter sind optional.
line_space ist nur dann zu besetzen, wenn innerhalb eines
mehrzeiligen Textbereiches erkannt werden soll. Der Wert gibt den Zeilenabstand an. Er wird von REC
benötigt, um etwa zwischen einem Komma auf der einen und einem Apostroph auf der nächsten Zeile unterscheiden zu
können. Um zwischen U und u unterscheiden zu können, wird ausser der Form des Zeichens Information benötigt,
wo das Zeichen in einer Zeile zu finden ist und welche Grösse es relativ zur Zeilenhöhe hat. Der Parameter
base_line legt den Massstab fest - die Höhe eines Grossbuchstabens wie 'A', 'B' oder 'C'. Das Modul
REP benutzt diesen Parameter - sofern er spezifiziert wurde - zur verbesserten Zeilentrennung.
char_space_min, char_space_max
- Diese Parameter beschreiben den minimalen und maximalen Abstand zweier aufeinanderfolgender Zeichen
des gegebenen fonts, also den Abstand vom Anfang eines Zeichens zum Anfang des nächsten, gemessen in Bildpunkten.
Sofern diese Werte bekannt sind, kann damit die Sicherheit der Zeichentrennung verbessert werden, ansonsten besetze
man sie mit 0.
code
- Sofern die am Computer eingestellte Codepage von KADMOS unterstützt wird, wird sie voreingestellt.
Diese Voreinstellung kann abgefragt (nach Aufruf von
re?-init())gesetzt werden.
CODE_PAGE_...
#define CODE_PAGE_437 437
#define CODE_PAGE_720 720
#define CODE_PAGE_737 737
#define CODE_PAGE_850 850
#define CODE_PAGE_852 852
#define CODE_PAGE_855 855
#define CODE_PAGE_857 857
#define CODE_PAGE_858 858
#define CODE_PAGE_864 864
#define CODE_PAGE_866 866
#define CODE_PAGE_874 874
#define CODE_PAGE_1250 1250
#define CODE_PAGE_1251 1251
#define CODE_PAGE_1252 1252
#define CODE_PAGE_1253 1253
#define CODE_PAGE_1254 1254
#define CODE_PAGE_1255 1255
#define CODE_PAGE_1256 1256
#define CODE_PAGE_1257 1257
#define CODE_PAGE_1258 1258
#define CODE_ISO_8859_1 885901
#define CODE_ISO_8859_2 885902
#define CODE_ISO_8859_4 885904
#define CODE_ISO_8859_5 885905
#define CODE_ISO_8859_6 885906
#define CODE_ISO_8859_7 885907
#define CODE_ISO_8859_8 885908
#define CODE_ISO_8859_9 885909
#define CODE_ISO_8859_10 885910
#define CODE_ISO_8859_11 885911
#define CODE_ISO_8859_13 885913
#define CODE_ISO_8859_15 885915
#define CODE_ASCII 1000000 /* Ersatz representation */
#define CODE_UTF_8 2000008
#define CODE_UTF_16 2000016
#define CODE_UTF_32 2000032
/*** special classifier codes */
#define CODE_ASCII_7BIT 1000001
#define CODE_UTF_16_7BIT 2000017
options
OPTIONS_BASICLABELS
Sollen bei der Erkennung die Basiskennungen zurückgeliefert werden anstelle der voreingestellten Gruppenkennungen
oder will man die Erkennung in Basiskennungen spezifizieren, so setze man diesen Wert.
OPTIONS_BASICLABELS_PARM
Hier kann gewählt werden dass Basis- statt Gruppenkennungen in der Struktur ReParm verwendet werden sollen.
OPTIONS_BASICLABELS_RESULT
Hier kann gewählt werden dass Basis- statt Gruppenkennungen in der Struktur RelResult oder RepResult verwendet werden sollen.
OPTIONS_EXCLUDE
Sollen bei der Erkennung keine gut bewerteten Alternativen zurückgeliefert werden, also soll eine eindeutige
Entscheidung oder eine Rückweisung erzwungen werden, so setze man diesen Wert. In der Praxis sollte man sich
jedoch darüber im klaren sein, dass sich bestimmte Alternativen zuweilen nicht ausschliessen lassen - es sei an
die 0-O-Problematik oder an ein isoliert geschriebenes x erinnert. In diesen Fällen werden dennoch die nicht
auszuschliessenden Alternativen mit ggf. guter Bewertung zurückgeliefert. Die Besetzung von OPTIONS_EXCLUDE
macht immer dann Sinn, wenn hohe Fehlersicherheit gefordert ist und dafür eine erhöhte Zahl von Rückweisungen
in Kauf genommen wird. So würde etwa ein Zeichen 5, welches mit grosser Ähnlichkeit zu einer 6 geschrieben wurde, unter
Umständen sowohl als 5 als auch als 6 mit nicht zu schlechtem Vertrauenswert erkannt. Bei Setzung von
OPTIONS_EXCLUDE werden in solchen Fällen Rückweisungen erzeugt.
⚠️ Wichtig: Beim Setzen dieser Option werden ähnlich viele Alternativen zurückgeliefert wie ohne,
beim Auftreten von Alternativen erhalten diese jedoch einen schlechten Vertrauenswert (rec_value).
OPTIONS_STRICTSELECT
Ist man sicher, dass im vorgelegtem Belegmaterial die abgeschalteten Kennungen (labels,alc) nie
vorkommen, so ist es sinnvoll, diese Option zu setzen. Beispiel: B ist deaktiviert und wird zur Erkennung vorgelegt.
Gesetztes OPTIONS_STRICTSELECT ergibt eine 8, nichtgesetztes OPTIONS_STRICTSELECT ergibt
eine Rückweisung. Dies gilt für Basiskennungen und Gruppenkennungen.
OPTIONS_FAST_GRID
Aktivieren einer schnelleren Grid-Entfernung mit nur geringfügig schlechteren Resultaten. Es kann auch bei
re_layout() gesetzt werden sowie bei re_page().
OPTIONS_FAST_REC
Das Setzen dieser Option bewirkt eine schnellere Erkennung bei den Handschrift-Klassifikatoren. Die Erkennungsqualität
ist geringfügig schlechter, indem manche Werte von rec_value ungerechtfertigterweise niedriger sind
als ohne diese Option. Die Alternativen bleiben erhalten, etwas öfter als sonst wird Schmutz als ein sinnvolles
Zeichen erkannt.
OPTIONS_FAST
Das setzen dieser Option bewirkt die Erkennung wie OPTIONS_FAST_GRID and OPTIONS_FAST_REC zusammen.
OPTIONS_REL_REC_REPEAT
Nach einem ersten Durchlauf von rel_do() oder rep_do() werden die erkannten Einzelzeichen erneut
aus dem Farb- oder Graubild extrahiert und einzeln binarisiert und erkannt. Es resultiert eine deutlich verbesserte
Erkennungsqualität.
OPTIONS_REL_CLEAR
Dieser Parameter ist zur Unterstützung des Lesens von Normschrift-Zeilen, etwa CMC7 oder E13b gedacht. Diese Zeilen
enthalten oft Schmutz am Anfang oder Ende. Dieser Schmutz wird wie üblich zu erkennen versucht. Gegebenenfalls
werden nun jedoch die als Schmutz erkannten Resultate aus RelGraph und RelResult entfernt.
labels_size
- Allokationsgrösse von
labels bzw. labels2.
REPARM_LABELS_SIZE_MAX Gibt die maximale Grösse von labels bzw. labels2 an.
labels, labels2;
- Hier kann durch Angabe einzelner Zeichenklassen eine Auswahl aus dem im Klassifikator (Rec-Datei)
verfügbaren Zeichensatz getroffen werden. Enthält die Rec-Datei etwa die Zeichen {0,1,2,3,4,5,6,7,8,9,+,-}, so
kann durch Besetzung von labels mit "+ - " die Erkennung auf die Zeichen '+' und '-' beschränkt werden.
Jede dem Klassifikator bekannte Zeichenklasse wird durch zwei oder mehr Bytes bzw. bei Unicode durch zwei oder mehr
short charakterisiert. Ein Leerstring ist gleichbedeutend mit der Auswahl aller Zeichenklassen des jeweiligen
Klassifikators, sofern der Parameter
alc nicht besetzt ist. Die Parameter alc und labels
wirken additiv, wenn sie beide spezifiziert wurden (siehe Beschreibung von alc). Welche Zeichenklassen
einem Klassifikator (Rec-Datei) bekannt sind, kann durch einen Aufruf von rec_info(),
rel_info() oder rep_info() ermittelt werden. Diese Funktionen liefern hier
(unter labels) diese Zeichenklassen nach gleicher Konvention zurück. Ausserdem findet man die
dem jeweiligen Klassifikator bekannten Zeichenklassen in der zu diesem Klassifikator gehörigen Alc-Datei.
Eine solche Alc-Datei ist eine Text-Datei im Format der Windows INI-Dateien.
labels2 hat die gleiche Bedeutung und Position wie labels. Es beschreibt die Kennungen im Unicode,
also mit dem Datentyp short anstelle von char.
rejects, rejects2
- Wird verwendet um im Klassifikator enthaltene Rückweisungsklassen zu selektieren.
alc
- Hier kann, wie bei
labels bzw. labels2, eine Auswahl aus dem im Rec-Datei verfügbaren Zeichensatz
getroffen werden. ALC steht für "Alphabet Code". Durch solche Einschränkungen kann man die
Erkennungssicherheit verbessern und die Arbeitsgeschwindigkeit erhöhen. Der Parameter alc wird bei
jedem Aufruf von re?_do() oder re?_info() ausgewertet, die ermittelten Kennungen werden ggf.
dem Parameter labels bzw. labels2 zugeschlagen. Dann wird alc stets wieder auf den
Wert 0 (=ALC_DEFAULT) zurückgesetzt. Der Wert 0 oder ALC_DEFAULT bedeutet keine
Einschränkung.
Welche Zeichenklassen für einen bestimmten Klassifikator zu den jeweiligen ALC-Konstanten
verfügbar sind und ausgewählt werden können, findet man auch im Klartext in der zu diesem Klassifikator
gehörigen Alc-Datei. Die ALC-Konstanten können mit logischem ODER
"|" verknüpft werden. _INC_PENWIN ist die Dekleration für PEN aus PEN-Windows.
Folgende ALC-Konstanten werden von KADMOS unterstützt:
ALC_DEFAULT | Voller Zeichensatz des Klassifikators, sofern wlabels leer ist. |
ALC_LCALPHA | Kleinbuchstaben |
ALC_UCALPHA | Grossbuchstaben |
ALC_ALPHA | Kleinbuchstaben und Grossbuchstaben |
ALC_NUMERIC | Ziffern |
ALC_ALPHANUMERIC | Kleinbuchstaben, Grossbuchstaben und Ziffern |
ALC_SPECIAL | Satz- und Sonderzeichen. |
ALC_ACCENT | Akzentbezeichnung |
ALC_ALL | Alle Zeichen |
ALC_GESTURES | Zur Zeit nicht benutzt. |
font
- Dieser Parameter beinhaltet den gegebenen font.
FONT_...
FONT_HAND
FONT_MACHINE
FONT_HM (font_HAND|font_MACHINE)
FONT_LATIN
FONT_FRAKTUR
FONT_GREEK
FONT_CYRILLIC
FONT_ARABIC
FONT_FARSI
FONT_HEBREW
FONT_THAI
FONT_LANGUAGE(FONT_LATIN|FONT_FRAKTUR|FONT_GREEK|FONT_CYRILLIC
|FONT_ARABIC|FONT_FARSI|FONT_HEBREW|FONT_THAI)
FONT_OCRA
FONT_OCRB
FONT_F7B
FONT_SEMI
FONT_CMC7
FONT_E13B
FONT_LCD
FONT_BRAILLE
FONT_NORM (FONT_OCRA|FONT_OCRB|FONT_CMC7|FONT_E13B|FONT_F7B
|FONT_SEMI|FONT_LCD|FONT_BRAILLE)
FONT_LN (FONT_LANGUAGE|FONT_NORM)
FONT_ALL
reject_limit
- Dieser Parameter bestimmt den Vertrauenswert (
rec_value), ab dem intern Alternativen
bereitgestellt und als Erkennungsergebnisse zurückgeliefert werden. Er hat wesentlichen Einfluss auf die Rechenzeit.
Voreinstellung ist ein Wert von 150.
filler3
- 8 Byte Alignment.
pos
- Das Modul
REL verwendet zur Unterscheidung von Zeichen Informationen über die Lage
des Zeichens in der Textzeile, so etwa zur Unterscheidung von U und u. Mit dem Parameter pos kann gesteuert
werden, inwieweit diese Lage der Zeichen in der Zeile zur Bewertung des Erkennungsergebnisses herangezogen werden soll.
POS_NOLINECONTEXT
Sollen die Zeichen nur aus ihrer geometrischen Gestalt erkannt werden, ohne Berücksichtigung ihrer Lage in der
Zeile, so setze man diesen Wert.
POS_SOFTLINECONTEXT
Wie oben beschrieben, verwendet REL zur Unterscheidung von Zeichen Informationen über die Lage des Zeichens in der Textzeile.
Dazu wird für jede Alternative der Erkennung ein Wert für die Grösse der Abweichung von der Soll-Zeilenlage
ermittelt. Dieser Wert wird zum Vertrauenswert rec_value[i] jeder Alternative addiert. Ist
POS_SOFTLINECONTEXT gesetzt, so wird die berechnete Abweichung derart normiert, dass für das am besten
positionierte Zeichen ein Abweichungswert Null entsteht.
POS_HARDLINECONTEXT
Soll die Lage der Zeichen in der Zeile besonders stark bewertet werden, so setze man diesen Wert.
POS_NOWORDCONTEXT
Sollen die Zeichen nur aus ihrer geometrischen Gestalt und ihrer Lage in der Zeile erkannt werden, jedoch ohne
Berücksichtigung der anderen Zeichen eines Wortes (Zahlwort ...), so setze man diesen Wert.
hookparm
- Hier kann eine eigene Funktion angegeben werden die der vorgeschriebenen Deklaration genügt.
Die Module
REP und REL rufen nach erfolgter Zeilen- und Zeichensegmentierung letztendlich stets
die Funktion rec_do() des Moduls REC mit einer zugehörigen Struktur RecData auf.
Ist bei rec_hook eine Funktion eingetragen, so wird diese unmittelbar nach jedem dieser
rec_do()-Aufrufe mit der zugehörigen RecData-Struktur ausgeführt. Man hat dadurch
eine ganze Reihe von Möglichkeiten zur Verfolgung und sogar Steuerung der Einzelzeichen-Erkennung, zur Sammlung der
segmentierten Rasterbilder oder auch zum Abbruch der Erkennung. Es wird nämlich der Rückgabewert der Funktion
rec_hook derart ausgewertet, dass bei einem Wert verschieden von RE_SUCCESS das Modul
rel_do() seine Arbeit beendet und ebenfalls mit diesem Rückgabewert zurückkehrt. Dadurch wird
auch gegebenenfalls das Modul rep_do() seine Arbeit beenden und mit diesem Wert zurückkehren. Will man
eine derartige hook-Funktion mit eigenen Parametern versorgen, so ist hierfür der Pointer
hookparm in der Struktur ReParm vorgesehen. Hinterlegt man etwa vor einem Aufruf von rel_do() bei
hookparm eine Adresse (z.B. auf private Daten), so wird diese Adresse von rel_do() vor jedem
Aufruf von rec_do() in die zugehörige Struktur RecData auf hookparm kopiert,
wo sie von der hook-Funktion abgerufen werden kann.
Verweise: