How FineReader Engine calculates resolution of the input image


How FineReader Engine calculates the DPI of the input image?


When a document is scanned, then the scanning resolution is set in dots per inch (DPI). When a document is digitized with a digital camera, there is no resolution information because it is a function/result of object distance, the focal length of the lens, sensor size, and sensor resolution. For the OCR processes, ABBYY technologies are able to calculate the DPI – even for images that were created by digital cameras

If the images come from a digital camera, they are supplied with metadata in the Exchangeable Image File Format (EXIF). This contains things like focal length, aperture, and orientation (rotation). While in theory, the result can be calculated, in reality, some older imaging software products may not properly handle the information.

In case an image header contains incorrect resolution data, technologies detect the resolution detection:
  1. EXIF is present:
    Resolution is calculated by the formula: max(96, RoundTo(max(width/8, height/12),10)).
  2. EXIF is absent, and an image is anisotropic:
    • One of the dimensions is 50dpi or less – resolution is calculated by formula from p.1;
    • The degree of anisotropy is below 10% – resolution is equated with the biggest one;
    • The degree of anisotropy is above 10% – an image is resampled up to the biggest resolution.
  3. EXIF is absent, and an image is isotropic:
    • Resolution is below 50 dpi – resolution is calculated by formula from p.1;
    • Resolution is below 140 dpi, and the formula from p.1 gives a bigger one – the image resolution is left intake, but internally Engine works with resolution calculated by the formula from p.1;
    • Resolution is above 140 dpi – resolution is equated with it.

Have more questions? Submit a request



Please sign in to leave a comment.