find_textT_find_textFindTextFindTextfind_text (Operator)

Name

find_textT_find_textFindTextFindTextfind_text — Segmentieren von Text in einem Bild.

Signatur

find_text(Image : : TextModel : TextResultID)

Herror T_find_text(const Hobject Image, const Htuple TextModel, Htuple* TextResultID)

void FindText(const HObject& Image, const HTuple& TextModel, HTuple* TextResultID)

HTextResult HImage::FindText(const HTextModel& TextModel) const

HTextResult HTextModel::FindText(const HImage& Image) const

void HTextResult::HTextResult(const HImage& Image, const HTextModel& TextModel)

void HTextResult::FindText(const HImage& Image, const HTextModel& TextModel)

static void HOperatorSet.FindText(HObject image, HTuple textModel, out HTuple textResultID)

HTextResult HImage.FindText(HTextModel textModel)

HTextResult HTextModel.FindText(HImage image)

public HTextResult(HImage image, HTextModel textModel)

void HTextResult.FindText(HImage image, HTextModel textModel)

def find_text(image: HObject, text_model: HHandle) -> HHandle

Beschreibung

find_textfind_textFindTextFindTextFindTextfind_text segmentiert Text im Bild ImageImageImageImageimageimage welcher durch das Textmodell TextModelTextModelTextModelTextModeltextModeltext_model beschrieben wird und gibt das Ergebnis in TextResultIDTextResultIDTextResultIDTextResultIDtextResultIDtext_result_id zurück. Die einzelnen Ergebnisse in TextResultIDTextResultIDTextResultIDTextResultIDtextResultIDtext_result_id können mit get_text_resultget_text_resultGetTextResultGetTextResultGetTextResultget_text_result und get_text_objectget_text_objectGetTextObjectGetTextObjectGetTextObjectget_text_object abgefragt werden.

Die Ergebnisse in TextResultIDTextResultIDTextResultIDTextResultIDtextResultIDtext_result_id hängen davon ab, welcher ModeModeModeModemodemode bei der Erzeugung von TextModelTextModelTextModelTextModeltextModeltext_model mit create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReaderCreateTextModelReadercreate_text_model_reader gewählt wurde.

Für Textmodelle mit ModeModeModeModemodemode = 'auto'"auto""auto""auto""auto""auto" extrahiert und klassifiziert find_textfind_textFindTextFindTextFindTextfind_text Text jeglicher Größe im Bild ImageImageImageImageimageimage. 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_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_text_model_param.

Für die Textsegmentierung mit Textmodellen mit ModeModeModeModemodemode = 'manual'"manual""manual""manual""manual""manual" müssen immer geeignete Parameter wie die Höhe und Breite von Buchstaben mittels set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_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 TextResultIDTextResultIDTextResultIDTextResultIDtextResultIDtext_result_id abgefragt werden, falls für TextModelTextModelTextModelTextModeltextModeltext_model 'persistence'"persistence""persistence""persistence""persistence""persistence" auf 'true'"true""true""true""true""true" gesetzt wurde.

Sowohl für Textmodelle mit ModeModeModeModemodemode = 'auto'"auto""auto""auto""auto""auto", als auch für diese mit ModeModeModeModemodemode = 'manual'"manual""manual""manual""manual""manual" wendet find_textfind_textFindTextFindTextFindTextfind_text mehrere Schwellenwerte 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 TextModelTextModelTextModelTextModeltextModeltext_model erfüllt. Für Textmodelle mit ModeModeModeModemodemode = 'auto'"auto""auto""auto""auto""auto" besteht eine Zeile aus mindestens zwei Buchstaben, während für Textmodelle mit ModeModeModeModemodemode = 'manual'"manual""manual""manual""manual""manual" eine Zeile aus mindestens drei Buchstaben besteht. Anschließend werden Satz- und Trennzeichen hinzugefügt, sofern die entsprechenden Parameter via set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_text_model_param gesetzt wurden. Enthält TextModelTextModelTextModelTextModeltextModeltext_model vorgegebenen Zeilenstrukturen ('text_line_structure'"text_line_structure""text_line_structure""text_line_structure""text_line_structure""text_line_structure"), so wird getestet, ob die entstandene Zeile zu einer diesen Strukturen passt.

find_textfind_textFindTextFindTextFindTextfind_text segmentiert Text der ungefähr horizontal in ImageImageImageImageimageimage ausgerichtet ist. Die Operatoren text_line_orientationtext_line_orientationTextLineOrientationTextLineOrientationTextLineOrientationtext_line_orientation und rotate_imagerotate_imageRotateImageRotateImageRotateImagerotate_image können verwendet werden um diese Ausrichtung zu erreichen.

Da beim Aufruf von find_textfind_textFindTextFindTextFindTextfind_text und folgenden Operationen für das Ergebnis der Segmentierung Speicher allokiert wird, sollte das Segmentierungsergebnis 'TextResultID'"TextResultID""TextResultID""TextResultID""TextResultID""TextResultID" mit clear_text_resultclear_text_resultClearTextResultClearTextResultClearTextResultclear_text_result freigegeben werden, sobald es nicht mehr benötigt wird.

Ausführungsinformationen

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.

Parameter

ImageImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHImageHobject (byte / uint2)

Eingabebild.

TextModelTextModelTextModelTextModeltextModeltext_model (input_control)  text_model HTextModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Textmodell welches den zu segmentierenden Text beschreibt.

TextResultIDTextResultIDTextResultIDTextResultIDtextResultIDtext_result_id (output_control)  text_result HTextResult, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Ergebnis der Segmentierung.

Beispiel (HDevelop)

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)

Ergebnis

Sind alle Parameter gültig, gibt find_textfind_textFindTextFindTextFindTextfind_text TRUE zurück. Wenn nötig wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReaderCreateTextModelReadercreate_text_model_reader, set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_text_model_param, text_line_orientationtext_line_orientationTextLineOrientationTextLineOrientationTextLineOrientationtext_line_orientation, text_line_slanttext_line_slantTextLineSlantTextLineSlantTextLineSlanttext_line_slant

Nachfolger

get_text_resultget_text_resultGetTextResultGetTextResultGetTextResultget_text_result, get_text_objectget_text_objectGetTextObjectGetTextObjectGetTextObjectget_text_object

Modul

OCR/OCV