Il codice in MATLAB per l'OCR

July 25

MATLAB è un acronimo per "laboratorio Matrix" e si riferisce ad un linguaggio di programmazione di alto livello e ambiente di programmazione sviluppato da MathWorks società di software tecnici. OCR è l'abbreviazione di "riconoscimento ottico dei caratteri" e si riferisce al processo di lettura dei dati in forma stampata e di individuare modelli di ottiche che corrispondono alle lettere, numeri e altri caratteri.

OCR

Tutte le fasi del processo di OCR - segmentazione, estrazione delle caratteristiche e classificazione - può essere implementato utilizzando MATLAB. Segmentazione, che consiste nel verificare la connettività di forme, e l'etichettatura e isolare loro, è la fase più importante perché permette al programma OCR per estrarre le caratteristiche di ogni singolo personaggio. Segmentazione di testo scritto a mano è particolarmente difficile perché caratteri scritti a mano tendono ad essere collegati tra loro. estrazione delle caratteristiche estrae le caratteristiche più utili, in termini di riconoscimento, da ogni personaggio e la classificazione assegna quelle caratteristiche di classi di personaggi.

acquisizione immagine

Secondo un documento presentato ad un seminario tenuto da Lasin Laboratorio di Synergetics presso l'Università di Lubiana, OCR può essere implementato in MATLAB utilizzando il Neural Network Toolbox e Image Processing Toolbox add-on. La prima fase prevede la lettura dell'immagine nello spazio di lavoro MATLAB come file bitmap. Questo è un tipo di file grafico in cui ciascun elemento di immagine, o pixel, corrisponde a una o più cifre binarie, o bit, in memoria. Il seguente codice viene utilizzato per questo compito.

I = imread ( 'training.bmp');
imshow (I)

Conversione di immagini

La fase successiva è quella di convertire l'immagine di colore, che è memorizzato come overlay rosso, verde e blu separati, in scala di grigio, che consiste di sfumature discrete di grigio. Il seguente codice MATLAB converte l'immagine RGB in un'immagine in scala di grigi.

Igray = rgb2gray (I);
imshow (Igray)

Trebbiatura

Successivamente, una tecnica nota come "trebbiatura" viene utilizzato per convertire l'immagine in scala di grigi in un'immagine binaria. La cella di codici MATLAB necessari per convertire l'immagine in scala di grigi in un'immagine binaria simile a questa:

IBW = im2bw (Igray, graythresh (Igray));
imshow (IBW)

rilevamento dei bordi

Una volta creata l'immagine binaria, singoli caratteri vengono ritagliate in sottoimmagini. Questi forniscono i dati grezzi per la routine di funzione di estrazione. Le sottoimmagini devono essere tagliate bruscamente al bordo di ciascun carattere, se devono essere di dimensioni standard, in modo da rilevare il bordo di ogni carattere è importante. Il bordo di un'immagine può essere rilevato utilizzando il seguente codice MATLAB.

Iedge = bordo (uint8 (IBW));
imshow (iedge)

Oggetti

Tutti gli oggetti in un'immagine - e le proprietà di ogni oggetto - possono essere determinate utilizzando il seguente codice MATLAB.

[Ilabel num] = bwlabel (Ifill);
DISP (num);
Iprops = regionprops (Ilabel);
IBox = [Iprops.BoundingBox];
IBox = rimodellare (iBox, [4 50]);
imshow (I)