find_text
— Segmentieren von Text in einem Bild.
find_text(Image : : TextModel : TextResultID)
find_text
segmentiert Text im Bild Image
welcher durch das
Textmodell TextModel
beschrieben wird und gibt das Ergebnis in
TextResultID
zurück.
Die einzelnen Ergebnisse in TextResultID
können mit
get_text_result
und get_text_object
abgefragt werden.
Die Ergebnisse in TextResultID
hängen davon ab, welcher
Mode
bei der Erzeugung von TextModel
mit
create_text_model_reader
gewählt wurde.
Für Textmodelle mit Mode
= 'auto' extrahiert und
klassifiziert find_text
Text jeglicher Größe im Bild Image
.
Es ist außerdem möglich, die Suche auf Buchstaben mit besonderen
Eigenschaften (minimale/maximale Höhe, Breite, Strichbreite...)
einzuschränken, siehe set_text_model_param
.
Für die Textsegmentierung mit Textmodellen mit
Mode
= 'manual' müssen immer geeignete Parameter wie die
Höhe und Breite von Buchstaben mittels set_text_model_param
gesetzt
werden. Das Eingabebild wird dann vorverarbeitet, so dass Strukturen die
möglicherweise Buchstaben sind hervorgehoben werden. Das vorverarbeitete
Bild kann anschließend von TextResultID
abgefragt werden, falls
für TextModel
'persistence' auf 'true' gesetzt wurde.
Sowohl für Textmodelle mit Mode
= 'auto' , als auch für
diese mit Mode
= 'manual' wendet find_text
mehrere Schwellwerte auf das Eingabebild an und selektiert
Buchstabenregionen anhand von regionenbasierten und von grauwertbasierten
Merkmalen. Anschließend werden diese Regionen zu Zeilen gruppiert.
Jede Zeile wird für sich vervollständigt und überprüft ob sie die
Restriktionen in TextModel
erfüllt. Für Textmodelle mit
Mode
= 'auto' besteht eine Zeile aus mindestens zwei
Buchstaben, während für Textmodelle mit Mode
= 'manual'
eine Zeile aus mindestens drei Buchstaben besteht.
Anschließend werden Satz- und Trennzeichen hinzugefügt, sofern die
entsprechenden Parameter via set_text_model_param
gesetzt wurden.
Enthält TextModel
vorgegebenen Zeilenstrukturen
('text_line_structure' ), so wird getestet, ob die entstandene Zeile zu
einer diesen Strukturen passt.
find_text
segmentiert Text der ungefähr horizontal in
Image
ausgerichtet ist. Die Operatoren text_line_orientation
und rotate_image
können verwendet werden um diese Ausrichtung
zu erreichen.
Da beim Aufruf von find_text
und folgenden Operationen für das
Ergebnis der Segmentierung Speicher allokiert wird, sollte das
Segmentierungsergebnis 'TextResultID' mit clear_text_result
freigegeben werden, sobald es nicht mehr benötigt wird.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Dieser Operator unterstützt Cancel-Timeouts und Interrupts.
Image
(input_object) singlechannelimage →
object (byte / uint2)
Eingabebild.
TextModel
(input_control) text_model →
(handle)
Textmodell welches den zu segmentierenden Text beschreibt.
TextResultID
(output_control) text_result →
(handle)
Ergebnis der Segmentierung.
read_image (Image, 'numbers_scale') create_text_model_reader ('auto', 'Document_Rej.omc', TextModel) * Optionally specify text properties set_text_model_param (TextModel, 'min_char_height', 20) find_text (Image, TextModel, TextResultID) * Return character regions and corresponding classification results get_text_object (Characters, TextResultID, 'all_lines') get_text_result (TextResultID, 'class', Class)
Sind alle Parameter gültig, gibt find_text
2 (H_MSG_TRUE) zurück. Wenn nötig
wird eine Fehlerbehandlung durchgeführt.
create_text_model_reader
,
set_text_model_param
,
text_line_orientation
,
text_line_slant
get_text_result
,
get_text_object
OCR/OCV