ClassesClassesClassesClasses | | | | Operators

do_ocr_singleT_do_ocr_singleDoOcrSingledo_ocr_singleDoOcrSingleDoOcrSingle (Operator)

Name

do_ocr_singleT_do_ocr_singleDoOcrSingledo_ocr_singleDoOcrSingleDoOcrSingle — Classify one character.

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)

Herror do_ocr_single(Hobject Character, 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

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

void HOperatorSetX.DoOcrSingle(
[in] IHUntypedObjectX* Character, [in] IHUntypedObjectX* Image, [in] VARIANT OcrHandle, [out] VARIANT* Classes, [out] VARIANT* Confidences)

VARIANT HRegionX.DoOcrSingle(
[in] IHImageX* Image, [in] IHOCRBoxX* OcrHandle, [out] VARIANT* Confidences)

VARIANT HOCRBoxX.DoOcrSingle(
[in] IHRegionX* Character, [in] IHImageX* Image, [out] VARIANT* Confidences)

static void HOperatorSet.DoOcrSingle(HObject character, HObject image, HTuple ocrHandle, out HTuple classes, out HTuple confidences)

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_singledo_ocr_singleDoOcrSingledo_ocr_singleDoOcrSingleDoOcrSingle assigns classes to the CharacterCharacterCharacterCharacterCharactercharacter (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 ImageImageImageImageImageimage. For each character the two classes with the highest confidencenses will be returned in ClassesClassesClassesClassesClassesclasses. The corresponding confidences will be returned in ConfidencesConfidencesConfidencesConfidencesConfidencesconfidences. The confidence value indicates the similarity between the input pattern and the assigned character.

Parallelization

Parameters

CharacterCharacterCharacterCharacterCharactercharacter (input_object)  region objectHRegionHRegionHRegionHRegionXHobject

Character to be recognized.

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2)

Gray values of the characters.

OcrHandleOcrHandleOcrHandleOcrHandleOcrHandleocrHandle (input_control)  ocr_box HOCRBox, HTupleHTupleHOCRBox, HTupleHOCRBoxX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

ID of the OCR classifier.

ClassesClassesClassesClassesClassesclasses (output_control)  string-array HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Classes (names) of the characters.

Number of elements: 2

ConfidencesConfidencesConfidencesConfidencesConfidencesconfidences (output_control)  real-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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_singleDoOcrSingledo_ocr_singleDoOcrSingleDoOcrSingle returns the value 2 (H_MSG_TRUE). Otherwise an exception will be raised.

Possible Predecessors

traind_ocr_class_boxtraind_ocr_class_boxTraindOcrClassBoxtraind_ocr_class_boxTraindOcrClassBoxTraindOcrClassBox, trainf_ocr_class_boxtrainf_ocr_class_boxTrainfOcrClassBoxtrainf_ocr_class_boxTrainfOcrClassBoxTrainfOcrClassBox, read_ocrread_ocrReadOcrread_ocrReadOcrReadOcr, connectionconnectionConnectionconnectionConnectionConnection, sort_regionsort_regionSortRegionsort_regionSortRegionSortRegion

Alternatives

do_ocr_multido_ocr_multiDoOcrMultido_ocr_multiDoOcrMultiDoOcrMulti

See also

write_ocrwrite_ocrWriteOcrwrite_ocrWriteOcrWriteOcr

Module

OCR/OCV


ClassesClassesClassesClasses | | | | Operators