create_text_model_readerT_create_text_model_readerCreateTextModelReaderCreateTextModelReadercreate_text_model_reader (Operator)
Name
create_text_model_readerT_create_text_model_readerCreateTextModelReaderCreateTextModelReadercreate_text_model_reader — Erzeugen eines Textmodells.
Signatur
void CreateTextModelReader(const HTuple& Mode, const HTuple& OCRClassifier, HTuple* TextModel)
void HTextModel::HTextModel(const HString& Mode, const HTuple& OCRClassifier)
void HTextModel::HTextModel(const HString& Mode, const HString& OCRClassifier)
void HTextModel::HTextModel(const char* Mode, const char* OCRClassifier)
void HTextModel::HTextModel(const wchar_t* Mode, const wchar_t* OCRClassifier)
(Nur Windows)
void HTextModel::CreateTextModelReader(const HString& Mode, const HTuple& OCRClassifier)
void HTextModel::CreateTextModelReader(const HString& Mode, const HString& OCRClassifier)
void HTextModel::CreateTextModelReader(const char* Mode, const char* OCRClassifier)
void HTextModel::CreateTextModelReader(const wchar_t* Mode, const wchar_t* OCRClassifier)
(Nur Windows)
Beschreibung
create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReaderCreateTextModelReadercreate_text_model_reader erzeugt das neue Textmodell
TextModelTextModelTextModelTextModeltextModeltext_model, welches den Text beschreibt, der von find_textfind_textFindTextFindTextFindTextfind_text
segmentiert werden soll.
ModeModeModeModemodemode bestimmt welche Methode der Textsegmetierung gewählt werden
soll. Mögliche Werte für ModeModeModeModemodemode sind 'auto'"auto""auto""auto""auto""auto" und
'manual'"manual""manual""manual""manual""manual".
Im Allgemeinen sollte ModeModeModeModemodemode auf 'auto'"auto""auto""auto""auto""auto" gesetzt werden,
da die automatische Textsegmentierung stabiler ist und weniger
Anpassungen notwendig sind. Hierbei ist zu beachten, dass ein
OCR Klassifikator OCRClassifierOCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier übergeben werden muss.
ModeModeModeModemodemode muss nur in den folgenden Fällen auf 'manual'"manual""manual""manual""manual""manual" gesetzt
werden:
-
Der zu segmentierende Text enthält sehr viele lokale Änderungen der
Polarität aufgrund von Reflexionen. Dies ist häufig bei geprägtem Text der
Fall.
-
Es steht kein geeigneter OCR Klassifikator zur Verfügung
(siehe unten).
Für Textmodelle mit ModeModeModeModemodemode = 'auto'"auto""auto""auto""auto""auto", kann mit
find_textfind_textFindTextFindTextFindTextfind_text automatisch Text jeglicher Größe extrahiert und
klassifiziert werden. Es ist aber auch möglich, die Suche auf
Buchstaben mit bestimmten Eigenschaften einzuschränken, siehe
set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_text_model_param. Wenn der zu segmentierende Text
Punktdruck-Buchstaben enthält, muss der Textmodell-Parameter
'dot_print'"dot_print""dot_print""dot_print""dot_print""dot_print" auf 'true'"true""true""true""true""true" gesetzt werden. Für Textmodelle mit
ModeModeModeModemodemode = 'auto'"auto""auto""auto""auto""auto" muss ein OCR Klassifikator
OCRClassifierOCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier übergeben werden, der unter Verwendung eines
Convolutional Neural Networks (CNN) oder eines mehrschichtigen Perzeptrons
(MLP) erzeugt wurde. Es wird ausdrücklich empfohlen einen CNN-basierten OCR
Klassifikator mit Rückweisungsklasse oder einen regularisierten
MLP-basierter Klassifikator (siehe
set_regularization_params_ocr_class_mlpset_regularization_params_ocr_class_mlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpset_regularization_params_ocr_class_mlp) zu verwenden, der unbekannte
Zeichen zurückweist (siehe set_rejection_params_ocr_class_mlpset_rejection_params_ocr_class_mlpSetRejectionParamsOcrClassMlpSetRejectionParamsOcrClassMlpSetRejectionParamsOcrClassMlpset_rejection_params_ocr_class_mlp).
Ein geeigneter OCR Klassifikator OCRClassifierOCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier kann entweder mit
read_ocr_class_cnnread_ocr_class_cnnReadOcrClassCnnReadOcrClassCnnReadOcrClassCnnread_ocr_class_cnn oder read_ocr_class_mlpread_ocr_class_mlpReadOcrClassMlpReadOcrClassMlpReadOcrClassMlpread_ocr_class_mlp
eingelesen, oder mit create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlpCreateOcrClassMlpcreate_ocr_class_mlp erstellt werden.
Außerdem ist es möglich in OCRClassifierOCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier einen Pfad zu einem
vortrainierten OCR Klassifikator oder einem OCR Klassifikator,
der mit write_ocr_class_mlpwrite_ocr_class_mlpWriteOcrClassMlpWriteOcrClassMlpWriteOcrClassMlpwrite_ocr_class_mlp gespeichert wurde, zu übergeben.
Bei Textmodellen mit ModeModeModeModemodemode = 'manual'"manual""manual""manual""manual""manual" müssen für die
Textsegmentierung geeignete Parameter wie die Höhe und Breite von Buchstaben
mittels set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_text_model_param gesetzt werden. In diesem Fall wird der
Wert von OCRClassifierOCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier ignoriert.
Parameter des Textmodells werden mit set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_text_model_param gesetzt
und mit get_text_model_paramget_text_model_paramGetTextModelParamGetTextModelParamGetTextModelParamget_text_model_param abgefragt.
Da beim Aufruf von create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReaderCreateTextModelReadercreate_text_model_reader und folgenden Operationen
für das Textmodell Speicher allokiert wird, sollte das Modell mit
clear_text_modelclear_text_modelClearTextModelClearTextModelClearTextModelclear_text_model freigegeben werden, sobald es nicht mehr benötigt
wird.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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.
Parameter
ModeModeModeModemodemode (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Modus des Textmodells.
Defaultwert:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
Werteliste: 'auto'"auto""auto""auto""auto""auto", 'manual'"manual""manual""manual""manual""manual"
OCRClassifierOCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier (input_control) string → HTupleUnion[int, str]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
OCR Klassifikator.
Defaultwert:
'Universal_Rej.occ'
"Universal_Rej.occ"
"Universal_Rej.occ"
"Universal_Rej.occ"
"Universal_Rej.occ"
"Universal_Rej.occ"
Wertevorschläge: 'Document_Rej.omc'"Document_Rej.omc""Document_Rej.omc""Document_Rej.omc""Document_Rej.omc""Document_Rej.omc", 'Document_0-9_Rej.omc'"Document_0-9_Rej.omc""Document_0-9_Rej.omc""Document_0-9_Rej.omc""Document_0-9_Rej.omc""Document_0-9_Rej.omc", 'Document_0-9A-Z_Rej.omc'"Document_0-9A-Z_Rej.omc""Document_0-9A-Z_Rej.omc""Document_0-9A-Z_Rej.omc""Document_0-9A-Z_Rej.omc""Document_0-9A-Z_Rej.omc", 'Document_A-Z+_Rej.omc'"Document_A-Z+_Rej.omc""Document_A-Z+_Rej.omc""Document_A-Z+_Rej.omc""Document_A-Z+_Rej.omc""Document_A-Z+_Rej.omc", 'DotPrint_Rej.omc'"DotPrint_Rej.omc""DotPrint_Rej.omc""DotPrint_Rej.omc""DotPrint_Rej.omc""DotPrint_Rej.omc", 'DotPrint_0-9_Rej.omc'"DotPrint_0-9_Rej.omc""DotPrint_0-9_Rej.omc""DotPrint_0-9_Rej.omc""DotPrint_0-9_Rej.omc""DotPrint_0-9_Rej.omc", 'DotPrint_0-9+_Rej.omc'"DotPrint_0-9+_Rej.omc""DotPrint_0-9+_Rej.omc""DotPrint_0-9+_Rej.omc""DotPrint_0-9+_Rej.omc""DotPrint_0-9+_Rej.omc", 'DotPrint_0-9A-Z_Rej.omc'"DotPrint_0-9A-Z_Rej.omc""DotPrint_0-9A-Z_Rej.omc""DotPrint_0-9A-Z_Rej.omc""DotPrint_0-9A-Z_Rej.omc""DotPrint_0-9A-Z_Rej.omc", 'DotPrint_A-Z+_Rej.omc'"DotPrint_A-Z+_Rej.omc""DotPrint_A-Z+_Rej.omc""DotPrint_A-Z+_Rej.omc""DotPrint_A-Z+_Rej.omc""DotPrint_A-Z+_Rej.omc", 'HandWritten_0-9_Rej.omc'"HandWritten_0-9_Rej.omc""HandWritten_0-9_Rej.omc""HandWritten_0-9_Rej.omc""HandWritten_0-9_Rej.omc""HandWritten_0-9_Rej.omc", 'Industrial_Rej.omc'"Industrial_Rej.omc""Industrial_Rej.omc""Industrial_Rej.omc""Industrial_Rej.omc""Industrial_Rej.omc", 'Industrial_0-9_Rej.omc'"Industrial_0-9_Rej.omc""Industrial_0-9_Rej.omc""Industrial_0-9_Rej.omc""Industrial_0-9_Rej.omc""Industrial_0-9_Rej.omc", 'Industrial_0-9+_Rej.omc'"Industrial_0-9+_Rej.omc""Industrial_0-9+_Rej.omc""Industrial_0-9+_Rej.omc""Industrial_0-9+_Rej.omc""Industrial_0-9+_Rej.omc", 'Industrial_0-9A-Z_Rej.omc'"Industrial_0-9A-Z_Rej.omc""Industrial_0-9A-Z_Rej.omc""Industrial_0-9A-Z_Rej.omc""Industrial_0-9A-Z_Rej.omc""Industrial_0-9A-Z_Rej.omc", 'Industrial_A-Z+_Rej.omc'"Industrial_A-Z+_Rej.omc""Industrial_A-Z+_Rej.omc""Industrial_A-Z+_Rej.omc""Industrial_A-Z+_Rej.omc""Industrial_A-Z+_Rej.omc", 'OCRA_Rej.omc'"OCRA_Rej.omc""OCRA_Rej.omc""OCRA_Rej.omc""OCRA_Rej.omc""OCRA_Rej.omc", 'OCRA_0-9_Rej.omc'"OCRA_0-9_Rej.omc""OCRA_0-9_Rej.omc""OCRA_0-9_Rej.omc""OCRA_0-9_Rej.omc""OCRA_0-9_Rej.omc", 'OCRA_0-9A-Z_Rej.omc'"OCRA_0-9A-Z_Rej.omc""OCRA_0-9A-Z_Rej.omc""OCRA_0-9A-Z_Rej.omc""OCRA_0-9A-Z_Rej.omc""OCRA_0-9A-Z_Rej.omc", 'OCRA_A-Z+_Rej.omc'"OCRA_A-Z+_Rej.omc""OCRA_A-Z+_Rej.omc""OCRA_A-Z+_Rej.omc""OCRA_A-Z+_Rej.omc""OCRA_A-Z+_Rej.omc", 'OCRB_Rej.omc'"OCRB_Rej.omc""OCRB_Rej.omc""OCRB_Rej.omc""OCRB_Rej.omc""OCRB_Rej.omc", 'OCRB_0-9_Rej.omc'"OCRB_0-9_Rej.omc""OCRB_0-9_Rej.omc""OCRB_0-9_Rej.omc""OCRB_0-9_Rej.omc""OCRB_0-9_Rej.omc", 'OCRB_0-9A-Z_Rej.omc'"OCRB_0-9A-Z_Rej.omc""OCRB_0-9A-Z_Rej.omc""OCRB_0-9A-Z_Rej.omc""OCRB_0-9A-Z_Rej.omc""OCRB_0-9A-Z_Rej.omc", 'OCRB_A-Z+_Rej.omc'"OCRB_A-Z+_Rej.omc""OCRB_A-Z+_Rej.omc""OCRB_A-Z+_Rej.omc""OCRB_A-Z+_Rej.omc""OCRB_A-Z+_Rej.omc", 'OCRB_passport_Rej.omc'"OCRB_passport_Rej.omc""OCRB_passport_Rej.omc""OCRB_passport_Rej.omc""OCRB_passport_Rej.omc""OCRB_passport_Rej.omc", 'Pharma_Rej.omc'"Pharma_Rej.omc""Pharma_Rej.omc""Pharma_Rej.omc""Pharma_Rej.omc""Pharma_Rej.omc", 'Pharma_0-9_Rej.omc'"Pharma_0-9_Rej.omc""Pharma_0-9_Rej.omc""Pharma_0-9_Rej.omc""Pharma_0-9_Rej.omc""Pharma_0-9_Rej.omc", 'Pharma_0-9+_Rej.omc'"Pharma_0-9+_Rej.omc""Pharma_0-9+_Rej.omc""Pharma_0-9+_Rej.omc""Pharma_0-9+_Rej.omc""Pharma_0-9+_Rej.omc", 'Pharma_0-9A-Z_Rej.omc'"Pharma_0-9A-Z_Rej.omc""Pharma_0-9A-Z_Rej.omc""Pharma_0-9A-Z_Rej.omc""Pharma_0-9A-Z_Rej.omc""Pharma_0-9A-Z_Rej.omc", 'SEMI_Rej.omc'"SEMI_Rej.omc""SEMI_Rej.omc""SEMI_Rej.omc""SEMI_Rej.omc""SEMI_Rej.omc", 'Universal_Rej.occ'"Universal_Rej.occ""Universal_Rej.occ""Universal_Rej.occ""Universal_Rej.occ""Universal_Rej.occ", 'Universal_0-9_Rej.occ'"Universal_0-9_Rej.occ""Universal_0-9_Rej.occ""Universal_0-9_Rej.occ""Universal_0-9_Rej.occ""Universal_0-9_Rej.occ", 'Universal_0-9+_Rej.occ'"Universal_0-9+_Rej.occ""Universal_0-9+_Rej.occ""Universal_0-9+_Rej.occ""Universal_0-9+_Rej.occ""Universal_0-9+_Rej.occ", 'Universal_0-9A-Z_Rej.occ'"Universal_0-9A-Z_Rej.occ""Universal_0-9A-Z_Rej.occ""Universal_0-9A-Z_Rej.occ""Universal_0-9A-Z_Rej.occ""Universal_0-9A-Z_Rej.occ", 'Universal_0-9A-Z+_Rej.occ'"Universal_0-9A-Z+_Rej.occ""Universal_0-9A-Z+_Rej.occ""Universal_0-9A-Z+_Rej.occ""Universal_0-9A-Z+_Rej.occ""Universal_0-9A-Z+_Rej.occ", 'Universal_A-Z+_Rej.occ'"Universal_A-Z+_Rej.occ""Universal_A-Z+_Rej.occ""Universal_A-Z+_Rej.occ""Universal_A-Z+_Rej.occ""Universal_A-Z+_Rej.occ"
TextModelTextModelTextModelTextModeltextModeltext_model (output_control) text_model → HTextModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Neu erzeugtes Textmodell.
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
create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReaderCreateTextModelReadercreate_text_model_reader gibt TRUE zurück.
Nachfolger
set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamSetTextModelParamset_text_model_param,
get_text_model_paramget_text_model_paramGetTextModelParamGetTextModelParamGetTextModelParamget_text_model_param,
find_textfind_textFindTextFindTextFindTextfind_text
Siehe auch
clear_text_modelclear_text_modelClearTextModelClearTextModelClearTextModelclear_text_model
Modul
OCR/OCV