Recogniform - Tecnologie di riconoscimento ottico


Go to the Italian website

OMR Recognition Engine - OMR sdk

 buy on-line     Recogniform Reader    download evaluation version     info   

our OMR (Optical Mark Recognition) engine allows to recognize check boxes, printed with blind ink or not.

Accuracy:   OMR recognition engine's accuracy is almost 100%, even in case of not good quality typed and scanned images. Even with low quality images, the error rate is extremely low.

Technology: our engine is based on an exclusive double analysis: ink percentage and sign extension. This allows to reach extraordinary results, compared to all OMR engines available (mostly based on ink percentage only).

Speed: speed is linked to cpu speed. Using Pentium IV processors, you can recognize a 600 check boxes page in less than 0.5 seconds. 

Input: monochrome bitmaps.

Output: output is made up by ink percentage and sign extension values.

Platform: all of the Windows 95/98/NT/Millennium/2000/Xp/Vista/7 platforms are supported .

Packaging: the engine is packaged in DLL format.

Licensing: Royalties-free. Buy the SDK and distribute up to 1.000 runtimes!

Code Sample

#include "stdafx.h"

#include "recoomr.c"

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)


// Load dynamically the library


// Init the OMR session

int Session= OMR_Init("demo", "demo");

long hBitmap;

// Check if a DIB is available in clipboard

bool bAvail= IsClipboardFormatAvailable(CF_DIB);

hBitmap = 0;

if (bAvail)


// Open the Clipboard


// Retrieve the DIB from clipboard

hBitmap = (long) GetClipboardData(CF_DIB);

// Recognize a check box in fixed position

OMR_Recognize (Session, (long) hBitmap, 20, 50, 40, 70);

// Close the Clipboard


// Retrieve the ink percentage (0 100)

double dInk;

OMR_GetMarkDensityPercent (Session, &dInk);

// Retrieve the check percentage (0 100)

double dCheck;

OMR_GetMarkSizePercent (Session, &dCheck);

double dInkThreshold = 10F;

double dCheckThreshold = 60F;

// Compare the percentages with the thresholds

if ((dInk>=dInkThreshold) && (dCheck>=dCheckThreshold))


// The check box is checked

MessageBox(NULL, "Checked ! ", "RESULT", MB_OK);

} else


if ((dInk<dInkThreshold) && (dCheck<dCheckThreshold))


// The check box is unchecked

MessageBox(NULL, "Unchecked ! ", "RESULT", MB_OK);

} else


// The check box status is unknown

MessageBox(NULL, "Unknown! ", "RESULT", MB_OK);




// Show an error message

else MessageBox(NULL, "Unable to paste DIB", "ERROR", MB_OK);

// Close the session


// Unload the library


return 0;


Evaluation Version
You can download an evaluation version of this product for
Visual Basic, Visual C++ or Delphi.

Price & Ordering Info
Recogniform OMR sdk price is 1.499,00 eur. The library is 
royalties free so you can distribute up to 1.000 runtimes without paying any licenses fee.  You can order on-line in our e-commerce store or using our contacts page.

Further Info
For more information about Recogniform OMR engine, please use our contacts page
or click here.

2000-2022 Recogniform Technologies SpA - All rights reserved