Operator Reference

do_ocr_singleT_do_ocr_singleDoOcrSingleDoOcrSingledo_ocr_single (Operator)

do_ocr_singleT_do_ocr_singleDoOcrSingleDoOcrSingledo_ocr_single — Classify one character.

Warning

do_ocr_singledo_ocr_singleDoOcrSingleDoOcrSingledo_ocr_single is obsolete and is only provided for reasons of backward compatibility. New applications should use the MLP, SVM or CNN based operators instead.

Signature

do_ocr_single(Character, Image : : OcrHandle : Classes, Confidences)

Herror T_do_ocr_single(const Hobject Character, const Hobject Image, const Htuple OcrHandle, Htuple* Classes, Htuple* Confidences)

void DoOcrSingle(const HObject& Character, const HObject& Image, const HTuple& OcrHandle, HTuple* Classes, HTuple* Confidences)

HTuple HRegion::DoOcrSingle(const HImage& Image, const HOCRBox& OcrHandle, HTuple* Confidences) const

HTuple HOCRBox::DoOcrSingle(const HRegion& Character, const HImage& Image, HTuple* Confidences) const

def do_ocr_single(character: HObject, image: HObject, ocr_handle: HHandle) -> Tuple[Sequence[str], Sequence[float]]

Description

The operator do_ocr_singledo_ocr_singleDoOcrSingleDoOcrSingledo_ocr_single assigns classes to the CharacterCharacterCharactercharactercharacter (characters). For gray value features gray values of the surrounding rectangles of the regions will be used. The gray values will be taken from the parameter ImageImageImageimageimage. For each character the two classes with the highest confidences will be returned in ClassesClassesClassesclassesclasses. The corresponding confidences will be returned in ConfidencesConfidencesConfidencesconfidencesconfidences. The confidence value indicates the similarity between the input pattern and the assigned character.

Execution Information

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

Parameters

CharacterCharacterCharactercharactercharacter (input_object)  region objectHRegionHObjectHObjectHobject

Character to be recognized.

ImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (byte / uint2)

Gray values of the characters.

OcrHandleOcrHandleOcrHandleocrHandleocr_handle (input_control)  ocr_box HOCRBox, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

ID of the OCR classifier.

ClassesClassesClassesclassesclasses (output_control)  string-array HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Classes (names) of the characters.

Number of elements: 2

ConfidencesConfidencesConfidencesconfidencesconfidences (output_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Confidence values of the characters.

Number of elements: 2

Example (C)

HTuple  Classes,Confidences;
Hlong    orc_handle;
HTuple  OcrHandle;

read_ocr("testnet",&orc_handle);
create_tuple(&OcrHandle,1);
set_i(OcrHandle,orc_handle,0);
read_image(&Image,"character.tiff");
binary_threshold(Image,&Dark, 'otsu', 'dark', &UsedThreshold);
connection(Dark,&Character);
count_obj(Character,&num);
open_window(0,0,-1,-1,0,"","",&WindowHandle);
for (i=0; i<num; i++) {
  select_obj(Character,&SingleCharacter,i);
  T_do_ocr_single(SingleCharacter,Image,
                  OcrHandle,&Classes,&Confidences);
  printf("best   = %s (%g)\n",
         get_s(Classes,0),get_d(Confidences,0));
  printf("second = %s (%g)\n\n",
         get_s(Classes,1),get_d(Confidences,1));
}

Result

If the input parameters are correct, the operator do_ocr_singledo_ocr_singleDoOcrSingleDoOcrSingledo_ocr_single returns the value 2 ( H_MSG_TRUE) . Otherwise an exception will be raised.

Possible Predecessors

traind_ocr_class_boxtraind_ocr_class_boxTraindOcrClassBoxTraindOcrClassBoxtraind_ocr_class_box, trainf_ocr_class_boxtrainf_ocr_class_boxTrainfOcrClassBoxTrainfOcrClassBoxtrainf_ocr_class_box, read_ocrread_ocrReadOcrReadOcrread_ocr, connectionconnectionConnectionConnectionconnection, sort_regionsort_regionSortRegionSortRegionsort_region

Alternatives

do_ocr_multido_ocr_multiDoOcrMultiDoOcrMultido_ocr_multi

See also

write_ocrwrite_ocrWriteOcrWriteOcrwrite_ocr

Module

OCR/OCV