Handwritten text recognition

Distinguishing between handwritten texts in the machine-printed image is important because the machine printed OCR gives a more accurate result. The height and width of handwritten characters are very varied, so this can confuse the zone detection prepared for machine texts. If the handwritten texts are separated, and zoned or copied into the new HPAGE in the image, you can call an OCR that recognizes the appropriate handwriting, if necessary.

You can use it to remove handwritten scribbles from invoices before processing, or you can check if there is a signature or handwritten information on the document.

Handwriting detection applies to both signatures and handwritten numbers and letters in the image. The program does not distinguish the signature from other handwritten texts.

Neural networks are able to learn characteristics from training data set analysis and then classify an unknown image based on weights. The neural network used in CSDK consists of convolutional layers that are able to extract a lot of information from the image using kernels. During the learning process, the network uses neurons to select important features that distinguish handwritten characters from typed ones. Using neural networks instead of classical methods means that there is no need for hand coding. Seeing many learning patterns, the network is more flexible to changes in handwriting style and transcends the limitations of classical coding.

You can use two functions to detect handwritten areas:

  • change the current image in hpage

  • return the handwritten image in a separate hpage

Depending on the mode parameter it retains or removes the handwriting. When the handwriting is retained, the function also returns handwriting zones. The zones can be recognized by RM_RER or RM_HNR or another handwritten text recognizer.

  • CSDK sets the zone recognition mode to the hand-written zone filling method (FM_HANDPRINT).

  • If the program did not find a handwritten area in the image, the number of zones is zero. Check it with the following function: RECERR RECAPIKRN kRecGetZoneCount (HPAGE hPage, int *pnZones);