People might think that handwriting is similar to bad machine print and that ICR is a more advanced form of OCR that can process text of worse quality. In reality, those 2 recognizers, OCR and ICR, are designed to process completely different types of text; OCR for machine print and ICR for handwriting. Machine print and handwriting are very different types of writing.
To recognize bad quality machine print, OCR is still the answer. However, even though all OCRs are based on the same technology, they are typically tuned to process specific types of fields, or data. Additionally, the quality of each OCR varies with each product. Thus the answer doesn’t end there.
In order to handle bad quality machine print, we recommend using an OCR specifically tuned to the application or task, or tuning the OCR you currently have (if it allows it) to the specific field you are attempting to read. Certain OCRs are tuned to process fields such as phone numbers, names, dates, amounts, etc. By knowing the type of data the field contains, OCRs can produce much better recognition results.
Using vocabularies and templates is also very important. When recognition engines have context, they are much better prepared to handle recognition. For example, when recognizing names, OCR will provide higher results knowing the field is either a first name or last name, rather than trying to recognize a set of characters. Moreover, using vocabularies (such as a directory) can significantly limit the answers available.
So what’s the final answer? When trying to read bad quality machine print, you should use a high quality OCR, specifically tuned to the application and apply context. Then, even if some characters are only partially visible, they can still be understood from the context or surrounding text.