Code covered by the BSD License  

Highlights from
Aztec barcode reader

image thumbnail

Aztec barcode reader

by

 

This program can read Aztec barcode from video or pictures. It is partial in Dutch

Uitlezen_video.m
%Dit programma'tje kijkt of beelden scherp zijn en geeft dan aan wat voor
%info er in staat.

clc; clear all; close; 
tic

%instellingen
bestandsnaam='Video31.mpg';     %volledige bestandsnaam van bestand in dezelfde map
hoekmax=5;                      %bij nul vind er geen rotatiecorrectie plaats

readerobj = mmreader(bestandsnaam);
frate=readerobj.FrameRate;
duur=readerobj.Duration;
numf=readerobj.NumberOfFrames;
vidFrames = read(readerobj);
disp([num2str(numf) ' frames ingeladen, framerate is: ' num2str(frate) ' frames/sec. Totale lengte: ' num2str(duur) ' seconden'])

for k=1:numf
     M(k).cdata = vidFrames(:,:,:,k);
     M(k).colormap = [];
end

resultaat={[] [] [] []};
t=1;
disp('start scannen....')

G=[];
F=[];

tot=50; %numf; %eventueel tot een bepaald aantal frames

for a=1:tot
    D=(M(a).cdata);
    B=mean(D,3);
    check=sum(sum(abs(fft2(B))));
    if check>130000000   %11 is optimaal, dit getal is specifiek per video file. 90000000 voor een kleur is prima
        [rij_ascii errorc]=function_aztec_reader(B, hoekmax); 
        if errorc==(-1)
            F=[F check];
            disp(['Frame ' num2str(a) ' van ' num2str(tot) ', Foutcorrectie mislukt'])
        else
            G=[G check];
        disp(['Frame ' num2str(a) ' van ' num2str(tot) ', tekst:' rij_ascii])
        resultaat(t,1)=cellstr(num2str(a));
        resultaat(t,2)=cellstr(['fnr:' num2str(a) '  tekst:' rij_ascii]);
        resultaat(t,3)=cellstr(num2str(errorc));
        resultaat(t,4)=cellstr(num2str(check));
        
        end
        t=t+1;
    end
end

g=size(G);
g_min=min(G);
f=size(F);
disp(['Samenvatting: ' num2str(g(2)+f(2)) ' frames gescand in ' num2str(toc) ' seconden, waarvan ' num2str(g(2)) ' goed. Suggestie voor fft2=' num2str(g_min)] )



%{
Samenvatting: 71 frames gescand in 81.3466 seconden, waarvan 67 goed. Suggestie voor fft2=134257684.6218

zonder rotatie en met instellingen vooraf:
Samenvatting: 71 frames gescand in 66.7783 seconden, waarvan 68 goed. Suggestie voor fft2=134257684.6218
Samenvatting: 71 frames gescand in 66.7712 seconden, waarvan 68 goed. Suggestie voor fft2=134257684.6218

ook nog met zwart wit eerste kleur in plaats van gemiddelde:
Samenvatting: 71 frames gescand in 66.1089 seconden, waarvan 68 goed. Suggestie voor fft2=134257664

ook nog zonder resultaat opslaan:
Samenvatting: 71 frames gescand in 66.671 seconden, waarvan 68 goed. Suggestie voor fft2=134257664

zonder foutcorrectie in de rij:
Samenvatting: 71 frames gescand in 22.8101 seconden, waarvan 71 goed. Suggestie voor fft2=134257684.6218

zonder uitlezen tekst:
Samenvatting: 71 frames gescand in 22.7728 seconden, waarvan 71 goed. Suggestie voor fft2=134257684.6218

--> conclusie, het niet roteren en bepalen van juiste instellingen levert 25% tijdsbesparing op en geen errorcorrectie 60%
%}

Contact us