Code covered by the BSD License  

Highlights from
Aztec barcode reader

4.0

4.0 | 1 rating Rate this file 15 Downloads (last 30 days) File Size: 1.34 MB File ID: #24673
image thumbnail

Aztec barcode reader

by

 

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

| Watch this File

File Information
Description

For help and explanation contact me. If more people are interested I can translate the comments and make the program better and more decently

Working (in Dutch)

METHODE
 Inlezen videobestand afkomstig van camera
 Per frame:
- Van de drie kleuren per pixel de gemiddelde intensiteit nemen.
- de som van de 2D Fouriergetransformeerden bepalen en als deze hoog genoeg is de barcode proberen uit te lezen. De achterliggende gedachte is dat een scherpe afbeelding sterke overgangen heeft en daarmee een hoge foeriergetransformeerde.
- Indien het uitlezen gelukt is de tekst weergeven van de barcode
Uitlezen barcode:
 Roteren van de afbeelding indien nodig:
- Matrix maken waarin de randen in de afbeelding 1 zijn en de rest 0.
- Via de Radon functie de intensiteit van Matrix bekijken onder verschillende hoeken, tot de maximaal opgegeven hoek.
- De hoek met de grootste intensiteit bepalen en de afbeelding daarmee verdraaien.
 De stukken in het plaatje die volledig zwart zijn (het deel van de randen ten gevolge van de rotatie) en veel lichter zijn dan het gemiddelde deze gemiddelde kleur geven om later de randen beter te kunnen bepalen.
 Uit de Radon functie komt naast de hoek ook de locatie van de randen naar voren. De mediaan van het verschil tussen deze locaties is de indicatie voor de afstand tussen de randen.
 Het deel van het videoframe waar geen barcode opstaat eraf snijden:
o In zowel de verticale als de horizontale richting voor iedere rij pixels kijken naar verschillende eigenschappen waarom in deze rij pixels een deel van de barcode staat:
 Standaard deviatie: Hoe groter de spreiding in de kleur hoe hoger de kans op een lijn met veel zwart en wit
 De intensiteit van de donkerste en lichtste pixel
 Fouriergetransformeerde; hoe grotere overgangen tussen de kleuren hoe hoger deze waarde is.
- Deze score per rij normeren met het gemiddelde. Zie Figuur 8.2.
- Van buiten naar binnen vanuit de verschillende richtingen het punt bepalen waarbij de score voor langere tijd significant hoger wordt wat een indicatie is voor de rand van de barcode.
o Het deel wat buiten deze rand valt van de afbeelding afsnijden.
 Vervolgens wordt de gemiddelde kleurintensiteit bepaald en de waarden die daar boven liggen krijgen de waarde 1 en daaronder de waarde nul.
 Uit deze zwart-wit afbeelding wordt het raster van de barcode bepaald, zie ook Figuur 8.3 afbeelding:
- Allereerste wordt weer een afbeelding gemaakt, waar alleen de randen van de afbeelding de waarde 1 hebben.
- Door te kijken hoeveel eenen voorkomen per horizontale of verticale lijn kan gekeken worden waar een mogelijke rasterlijn zich bevindt.
- Het teveel aan mogelijke rasterlijnen wordt er hierna uitgefilterd. Als blijkt dat twee rasterlijnen dichter bij elkaar liggen dan de geschatte breedte van 1 pixel wordt het gemiddelde van deze twee de nieuwe rasterlijn.
- Het kan ook zijn dat een aantal rasterlijnen nog niet bepaald zijn, in dat geval wordt er als twee rasterlijnen meer dan 1,5 keer zover uit elkaar liggen als verwacht een nieuwe rasterlijn tussenin geplaatst.
 Vervolgens wordt dit raster gebruikt om een binaire matrix te maken van de barcode. Dit gebeurt door te kijken naar de kleur van de middelste pixel in een rasterhokje.
 Hier wordt weer een patroon van het middelpunt van de Aztec barcode overheen geplaatst om te zoeken waar de grootste kans is op een middelpunt van de barcode.
 Daarna wordt de barcode volgens een vooraf gedefineerd patroon uitgelezen rond het middelpunt en in een binaire rij geplaatst.
 Uit deze rij worden gegevens over het aantal lagen en de hoeveelheid informatie uitgelezen. Het aantal bits van de Reed Salomon foutcorrectie is hier ook van afhankelijk.
 Op de rest van de rij wordt nu met de juiste instellingen foutcorrectie en verbetering toegepast.
 En uiteindelijk wordt de verbeterde rij uitgelezen door het 5 (of in sommige gevallen 4) bits stukjes binaire code om te zetten in een ascii teken. Vanwege de beperktheid tot 32 unieke combinaties van 5 bits wordt er gewerkt met verschillde tabellen van tekens.

Required Products Image Processing Toolbox
MATLAB release MATLAB 7.4 (R2007a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (4)
17 Feb 2014 haem  
29 Oct 2009 Heuve

That is correct. It is used in solving the Reed Salom Error correction. I guess there is a code available on this website who also creates a Galois field array.

07 Oct 2009 Posada

Seems that my Matlab version Althoug (2007b) does not have the function "gf". The online documentation for matlab 2009 indeed document the function gf : Create Galois field array. Is this one, the one your program uses?

07 Oct 2009 Posada

I am having problems running the program. The function called gf is not found or is missing?

Contact us