Aztec barcode reader

Version 1.0.0.0 (1.34 MB) by Heuve
This program can read Aztec barcode from video or pictures. It is partial in Dutch
1.7K Downloads
Updated 9 Jul 2009

View License

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.

Cite As

Heuve (2024). Aztec barcode reader (https://www.mathworks.com/matlabcentral/fileexchange/24673-aztec-barcode-reader), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0