Koden i MATLAB for OCR

MATLAB er et akronym for "matrix laboratorium" og refererer til et høynivå programmeringsspråk og programmeringsmiljø utviklet av tekniske dataprogramvare selskapets MathWorks. OCR er en forkortelse for "optical character recognition" og refererer til prosessen med å lese data i trykt form og identifisere optiske mønstre som samsvarer med bokstaver, tall og andre tegn.

OCR

Alle trinnene involvert i OCR - segmentering, egenskapsuttrekking og klassifisering - kan implementeres ved hjelp av MATLAB. Segmentering, som innebærer å sjekke tilkobling av former, og merking og isolere dem, er den viktigste fasen fordi det gjør at OCR program for å pakke funksjoner fra hver enkelt karakter. Segmentering av håndskrevet tekst er spesielt vanskelig fordi håndskrevne tegn har en tendens til å bli koblet til hverandre. Feature utvinning trekker de mest nyttige funksjonene, i form av anerkjennelse, fra hver karakter og klassifisering tildeler disse funksjonene for å karakterklasser.

image Capture

Ifølge en artikkel presentert på et seminar gitt av LASIN Laboratory of synergetics ved Universitetet i Ljubljana, kan OCR bli implementert i MATLAB bruker Neural Network Toolbox og bildebehandling Toolbox add-ons. Den første fasen innebærer å lese bildet inn i MATLAB arbeidsområdet som en bitmap fil. Dette er en form for grafisk fil der hvert bildeelement, eller piksel, svarer til en eller flere binære siffer eller bits i minnet. Den følgende koden brukes for denne oppgaven.

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

bilde~~POS=TRUNC

Den neste fasen er å konvertere den fargede bildet, som lagres som separate røde, grønne og blå overlegg, til et gråtonebilde, som består av diskrete nyanser av grått. Følgende MATLAB kode konverterer RGB-bilde til et gråtonebilde.

Igray = rgb2gray (I);
imshow (Igray)

treske~~POS=TRUNC

Deretter blir en teknikk som er kjent som "tresking" benyttes for å omdanne den gråtonebilde til et binært bilde. Cellen av MATLAB koder som kreves for å konvertere gråtonebilde til et binært bilde ser omtrent slik ut:

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

Kantdeteksjon

Når det binære bildet er opprettet, er individuelle tegn beskjæres inn subimages. Disse gir rådata for funksjons utvinning rutine. De subimages må beskjæres kraftig på grensen av hvert tegn, hvis de skal være av standard størrelse, så detektere kanten av hvert tegn er viktig. Kanten av et bilde som kan bli detektert ved hjelp av følgende MATLAB kode.

Iedge = kant (uint8 (IBW));
imshow (Iedge)

objekter

Alle objekter i et bilde - og egenskapene til hvert objekt - kan bestemmes ved hjelp av følgende MATLAB kode.

[Ilabel num] = bwlabel (Ifill);
disp (num);
Iprops = regionprops (Ilabel);
Ibox = [Iprops.BoundingBox];
Ibox = omskape (Ibox, [4 50]);
imshow (I)