OMR Check Box SDK

OMR SDK è una libreria che consente il riconoscimento delle caselle di marcatura (check box).

 

Caratteristiche principali.

 

 

Il motore di riconoscimento OMR (Optical Mark Recognition) consente di lavorare con due parametri operativi, valutando sia la quantità d'inchiostro presente che la misura del segno nella casella.

 

Percentuale riempimento inchiostro
La percentuale di riempimento indica il numero di pixel neri sul totale dei pixel che compongono l'area della casella di marcatura.

Estensione del segno 
L'estensione del segno indica la lunghezza del tratto di pixel neri consecutivi in rapporto alla diagonale della casella.

I vantaggi di un doppio riconoscimento
Il doppio riconoscimento percentuale riempimento / estensione segno consente di ottenere livelli elevatissimi di affidabilità. Basti pensare a tutti quei casi in cui la casella viene biffata con un segno molto sottile, nei pressi di un angolo: in molti casi il livello di inchiostro non è sufficiente a ritenere la casella "piena"; di qui l'importanza del calcolo della soglia di estensione del segno che consente di identificare correttamente il valore della casella OMR.

Accuratezza e velocità (royalties-free)
La procedura di riconoscimento è molto rapida ed accurata, richiedendo pochi decimi di secondo.

La libreria restituisce il valore di riempimento inchiostro ed il valore di estensione del segno.  

Il kit di sviluppo per riconoscimento caselle di marcatura è disponibile in versione royalties free che consente di installare fino a 1000 licenze senza alcun costo aggiuntivo.

 

Di seguito un esempio di codice per utilizzare la libreria:

 

Code Sample

#include "stdafx.h"

#include "recoomr.c"

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

// Load dynamically the library

LoadOMRLibrary();

// 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

::OpenClipboard(NULL);

// 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

::CloseClipboard();

// 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

OMR_Done(Session);

// Unload the library

FreeOMRLibrary();

return 0;

}

 

Demo e versione di Valutazione
E' anche possibile scaricare una versione di valutazione di questo prodotto per Visual BasicVisual C++ o Delphi
La versione di valutazione include la libreria, il manuale di riferimento ed una applicazione DEMO.

 

Per richiedere la valutazione scrivi a: info@byteway.it , oppure telefona allo 02 3809 3651