RecResult, RelResult

typedef struct RelResult_tag {
  long  left, top;
  long  width, height;
  long  result_flags;
  void  *result_image;
  long  result_width; 
  long  result_height; 
  long  projection[2];
  short italic, bold; 
  short strokelen, black;
  #if defined(__STDC__)
    char  rec_char[REC_ALT][REC_CHAR_SIZE]; 
  #else
    union {
      char  rec_char[REC_ALT][REC_CHAR_SIZE]; 
      short rec_char2[REC_ALT][REC_CHAR_SIZE/2]; 
    };
  #endif
  unsigned char rec_value[REC_ALT];
  long rec_top[REC_ALT]; 
  long rec_bottom[REC_ALT];
} RelResult;

#define RecResult RelResult
      

Elemente:

left, top;
Zeichenposition in der Zeile.
width, height
Höhe und Breite des Zeichens.
result_flags
Das Element result_flags wird mit RESULT_FLAG_RESPELL besetzt, wenn das entsprechende Resultat durch ein Wörterbuch bestätigt wurde (RESPELL).
RESULT_FLAG_RESPELL_CONFIRMEDWird gesetzt wenn durch RESPELL bestätigt wurde.
RESULT_FLAG_RESPELL_GENERATEDWird gesetzt wenn durch RESPELL generiert wurde.
RESULT_FLAG_RESPELLZur Abfrage ob RESULT_FLAG_RESPELL_CONFIRMED oder RESULT_FLAG_RESPELL_GENERATED gesetzt wurden.
RESULT_FLAG_ACCENT_TOPWird gesetzt wenn der Akzent über dem betreffenden Zeichen steht.
RESULT_FLAG_ACCENT_BOTTOMWird gesetzt wenn der Akzent unter dem betreffenden Zeichen steht.
RESULT_FLAG_ACCENTRESULT_FLAG_ACCENT_TOP | RESULT_FLAG_ACCENT_BOTTOM
RESULT_FLAG_ACCENT_STARTErstes Element eines akzentuierten Zeichens.
RESULT_FLAG_ACCENT_MEMBERElement eines akzentuierten Zeichens.
RESULT_FLAG_ACCENT_ENDLetztes Element eines akzentuierten Zeichens.
*result_image
Wenn TYPO_KEEPIMG bei dem Parameter parm.typograph gesetzt ist, werden die segmentieren Einzelzeichen intern gespeichert. Der benötigte Speicher ist von REL allokiert und verwaltet, kann aber direkt mit der Funktion rel_freeimages() freigegeben werden. Bilder sind zeilenweise gespeichert, die oberste Zeile ist die erste. Die Zeilen sind pixelweise von links nach rechts gespeichert. Jedes Pixel wird als 1 Byte dargestellt. result_height beinhaltet die Zeilenanzahl, result_width die Spaltenanzahl des Bildes. In den Datenstrukturen RecData und RelResult steht vor result_image das umschreibende Rechteck von result_image. Dies beschreibt die Position des Bildes im Gesamtbild, welches zur Erkennung übergeben wurde. Zu beachten ist, dass die Dimensionen von result_image und dem umschreibenden Rechteck nicht identisch sein müssen, da grosse Bilder vor der Erkennung komprimiert werden und result_image aus dem komprimierten Bild gewonnen wird.
result_width
Breite von result_image (kann komprimiert sein).
result_height
Höhe von result_image (kann komprimiert sein).
projection[2]
Projektion gemäss Schräglage von Anfang und Ende des Zeichens auf die Grundlinie.
italic, bold

Schräglage der Zeichen (italic)
Schräglage

Hier werden die ermittelte Schräglage des Zeichens sowie dessen Strichdicke zurückgeliefert. Bereits die Definition der Schräglage eines Zeichens ist nicht ganz einfach. Wir legen dazu je eine Tangente von oben und von unten an das jeweilige Zeichen und verbinden den oberen mit dem unteren Berührungspunkt. Der Berührungspunkt selbst wird gegebenenfalls durch Mittelwertsbildung bestimmt. Man beachte, dass hierbei verschiedene Zeichen wie etwa L oder k in ihrer Normallage stets eine Schräglage nach links haben, andere nach rechts. Für langgezogene Zeichen wie Minuszeichen ist die Angabe einer Schräglage sinnlos. Der bei italic zurückgegebene Wert lässt sich inhaltlich wie folgt beschreiben:

normierte Zeilenhöhe mit 64 Pixel
Schräglage

Man nehme zunächst einen senkrechten Strich und drehe diesen um seinen Mittelpunkt in die entsprechende Schräglage. Nun messe man bei einer Zeilenhöhe von 64 Pixel die Anzahl der Pixel vom Schnittpunkt der senkrechten Geraden mit der Oberkante der Zeile bis zum Schnittpunkt der gedrehten Geraden. Dieser Wert wird unter italic eingetragen. Diese Definition hat gegenüber einer Winkelangabe den Vorteil, dass der berechnete italic-Wert unmittelbar für eine Schräglagen-Korrektur durch horizontale Scherung verwendet werden kann. Unter bold wird die Strichdicke des Zeichens zurückgegeben, gemessen in Einheiten halber Pixelbreite. Ein Wert von 3 entspricht somit einer mittleren Strichdicke von 1 1/2 Pixel.
strokelen, black
Unter strokelen wird die Gesamt-Strichlänge des Zeichens zurückgegeben. Multipliziert mit der oben beschriebenen mittleren Strichdicke bold erhält man eine grobe Schätzung für die (doppelte) Anzahl der Schwarzpunkte des Zeichens. Einen genaueren Wert liefert black - dort wird die prozentuale Schwärzung des übergebenen Bildes zurückgegeben (100 * Schwarzpunkte / Bildpunkte).
rec_char, rec_char2
Unter rec_char wird für das zugehörige Zeichen die 2-Byte-Kennung je nach eingestellter Codepage zurückgegeben, das Resultat der Erkennung. Das erste Zeichen ist im allgemeinen der zugehörige ANSI-Code, das zweite charakterisiert gegebenenfalls Formklassen. Beispielsweise wird für eine normale Handschrift-Null "0_", für eine durchgestrichene Handschrift-Null "0W" zurückgeliefert. Ist das Resultat der Erkennung nicht eindeutig, so werden bis zu 8 (REC_ALT) Alternativen in Reihenfolge absteigender Sicherheit zurückgeliefert. Ein leerer oder mit Blank besetzter String bedeutet "kein Resultat" oder "keine weiteren Alternativen". Eine Übersicht der in KADMOS verfügbaren Kennungen und Formklassen mit ihren 2-Byte-Kennungen finden Sie in unserer Webseite. rec_char2 hat die gleiche Bedeutung und Position wie rec_char. Es beschreibt die Kennungen im Unicode, also mit dem Datentyp short anstelle von char.
rec_value
Für jedes erkannte Zeichen wird hier - gegebenenfalls für alle Alternativen - die Sicherheit der jeweiligen Erkennung zurückgegeben. Kleine Werte stehen für hohe Sicherheit, Werte über 128 stehen für grosse Unsicherheit.
rec_top, rec_bottom
Für jede der erkannten Alternativen wird hier zurückgegeben, wo sich das Zeichen in der Zeile korrekterweise befinden sollte. Die Werte werden analog zu image_top und image_bottom gebildet, bezogen auf die spezifizierte base_line. Wurde der Wert von base_line beim Aufruf von rec_do nicht spezifiziert, so beziehen sich die zurückgegebenen Werte auf base_line=64.

Verweise: