Operator Reference

create_text_model_readerT_create_text_model_readerCreateTextModelReaderCreateTextModelReadercreate_text_model_reader (Operator)

create_text_model_readerT_create_text_model_readerCreateTextModelReaderCreateTextModelReadercreate_text_model_reader — Create a text model.

Signature

create_text_model_reader( : : Mode, OCRClassifier : TextModel)

Herror T_create_text_model_reader(const Htuple Mode, const Htuple OCRClassifier, Htuple* TextModel)

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)   ( Windows only)

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)   ( Windows only)

static void HOperatorSet.CreateTextModelReader(HTuple mode, HTuple OCRClassifier, out HTuple textModel)

public HTextModel(string mode, HTuple OCRClassifier)

public HTextModel(string mode, string OCRClassifier)

void HTextModel.CreateTextModelReader(string mode, HTuple OCRClassifier)

void HTextModel.CreateTextModelReader(string mode, string OCRClassifier)

def create_text_model_reader(mode: str, ocrclassifier: Union[int, str]) -> HHandle

Description

create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReadercreate_text_model_reader creates a TextModelTextModelTextModeltextModeltext_model, which describes the text to be segmented with find_textfind_textFindTextFindTextfind_text.

The parameter value of ModeModeModemodemode determines which text segmentation approach is used. Possible values are 'auto'"auto""auto""auto""auto" and 'manual'"manual""manual""manual""manual".

Typically, the parameter ModeModeModemodemode should be set to 'auto'"auto""auto""auto""auto" because this mode is more stable and requires less configuration effort. Note that in this case, also an OCR classifier must be passed in OCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier. Only if one of the following restrictions apply, ModeModeModemodemode must be set to 'manual'"manual""manual""manual""manual":

  • The segmentation of text which has strong local variations of the polarity is required. For example, due to reflections, engraved text often has strong local variations.

  • No suitable OCR classifier is available (see below).

If ModeModeModemodemode = 'auto'"auto""auto""auto""auto", find_textfind_textFindTextFindTextfind_text is able to extract text of arbitrary size. It is possible to restrict the search to characters with specific attributes, see set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamset_text_model_param for details. In particular, if the text to be segmented contains dot printed characters, the text model parameter 'dot_print'"dot_print""dot_print""dot_print""dot_print" must be set to 'true'"true""true""true""true". Furthermore, an OCR classifier must be passed in OCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier. This OCR classifier must be based on a convolutional neural network (CNN) or a multilayer perceptron (MLP). Moreover, it is strongly recommended to use a CNN based OCR classifier with rejection class or a MLP based classifiers that has been trained with regularization parameters (see set_regularization_params_ocr_class_mlpset_regularization_params_ocr_class_mlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpset_regularization_params_ocr_class_mlp and provides a rejection class (see set_rejection_params_ocr_class_mlpset_rejection_params_ocr_class_mlpSetRejectionParamsOcrClassMlpSetRejectionParamsOcrClassMlpset_rejection_params_ocr_class_mlp). A suitable OCR classifier can either be read with read_ocr_class_cnnread_ocr_class_cnnReadOcrClassCnnReadOcrClassCnnread_ocr_class_cnn or read_ocr_class_mlpread_ocr_class_mlpReadOcrClassMlpReadOcrClassMlpread_ocr_class_mlp, or be created with create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlpcreate_ocr_class_mlp. It is also possible to pass a string containing the path to a pretrained OCR classifier or an OCR classifier that has been stored with write_ocr_class_mlpwrite_ocr_class_mlpWriteOcrClassMlpWriteOcrClassMlpwrite_ocr_class_mlp.

To enable text segmentation when ModeModeModemodemode = 'manual'"manual""manual""manual""manual", reasonable parameters for the text model, including the expected character height and width, must be set using set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamset_text_model_param. In this case, the value of OCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier is ignored.

The parameters of the TextModelTextModelTextModeltextModeltext_model can be set and queried with set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamset_text_model_param and get_text_model_paramget_text_model_paramGetTextModelParamGetTextModelParamget_text_model_param.

Since memory is allocated for the text model during the call of create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReadercreate_text_model_reader and during the following operations, the model should be freed explicitly by the operator clear_text_modelclear_text_modelClearTextModelClearTextModelclear_text_model as soon as it is no longer used.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

Parameters

ModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

The Mode of the text model.

Default: 'auto' "auto" "auto" "auto" "auto"

List of values: 'auto'"auto""auto""auto""auto", 'manual'"manual""manual""manual""manual"

OCRClassifierOCRClassifierOCRClassifierOCRClassifierocrclassifier (input_control)  string HTupleUnion[int, str]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

OCR Classifier.

Default: 'Universal_Rej.occ' "Universal_Rej.occ" "Universal_Rej.occ" "Universal_Rej.occ" "Universal_Rej.occ"

Suggested values: '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-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", '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-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", '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_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_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_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_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_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_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", '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-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", '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-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"

TextModelTextModelTextModeltextModeltext_model (output_control)  text_model HTextModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

New text model.

Example (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)

Result

create_text_model_readercreate_text_model_readerCreateTextModelReaderCreateTextModelReadercreate_text_model_reader returns the value 2 ( H_MSG_TRUE) .

Possible Successors

set_text_model_paramset_text_model_paramSetTextModelParamSetTextModelParamset_text_model_param, get_text_model_paramget_text_model_paramGetTextModelParamGetTextModelParamget_text_model_param, find_textfind_textFindTextFindTextfind_text

See also

clear_text_modelclear_text_modelClearTextModelClearTextModelclear_text_model

Module

OCR/OCV