Skip to content

do_ocr_singleDoOcrSingleDoOcrSingledo_ocr_singleT_do_ocr_single🔗

Short description🔗

do_ocr_singleDoOcrSingleDoOcrSingledo_ocr_singleT_do_ocr_single — Classify one character.

Warning🔗

do_ocr_singleDoOcrSingle 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( region Character, image Image, ocr_box OcrHandle, out string Classes, out real Confidences )void DoOcrSingle( const HObject& Character, const HObject& Image, const HTuple& OcrHandle, HTuple* Classes, HTuple* Confidences )static void HOperatorSet.DoOcrSingle( HObject character, HObject image, HTuple ocrHandle, out HTuple classes, out HTuple confidences )def do_ocr_single( character: HObject, image: HObject, ocr_handle: HHandle ) -> Tuple[Sequence[str], Sequence[float]]

Herror T_do_ocr_single( 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

HTuple HRegion.DoOcrSingle( HImage image, HOCRBox ocrHandle, out HTuple confidences )

HTuple HOCRBox.DoOcrSingle( HRegion character, HImage image, out HTuple confidences )

Description🔗

The operator do_ocr_singleDoOcrSingle assigns classes to the Charactercharactercharacter (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 Imageimageimage. For each character the two classes with the highest confidences will be returned in Classesclassesclasses. The corresponding confidences will be returned in Confidencesconfidencesconfidences. The confidence value indicates the similarity between the input pattern and the assigned character.

Execution information🔗

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🔗

Charactercharactercharacter (input_object) region → objectHObjectHRegionHObjectHobject

Character to be recognized.

Imageimageimage (input_object) singlechannelimage → object (byte / uint2)HObject (byte / uint2)HImage (byte / uint2)HObject (byte / uint2)Hobject (byte / uint2)

Gray values of the characters.

OcrHandleocrHandleocr_handle (input_control) ocr_box → (handle)HTuple (HHandle)HOCRBox, HTuple (IntPtr)HHandleHtuple (handle)

ID of the OCR classifier.

Classesclassesclasses (output_control) string-array → (string)HTuple (HString)HTuple (string)Sequence[str]Htuple (char*)

Classes (names) of the characters.

Number of elements: 2

Confidencesconfidencesconfidences (output_control) real-array → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (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_singleDoOcrSingle returns the value 2 (H_MSG_TRUE). Otherwise an exception will be raised.

Combinations with other operators🔗

Combinations

Possible predecessors

traind_ocr_class_boxTraindOcrClassBox, trainf_ocr_class_boxTrainfOcrClassBox, read_ocrReadOcr, connectionConnection, sort_regionSortRegion

Alternatives

do_ocr_multiDoOcrMulti

See also

write_ocrWriteOcr

Module🔗

OCR/OCV