SoftwarePractice.org: Home | Courseware | Wiki | Archive

Team F: Barcode Reading from Image

From SoftwarePractice.org


Contents

The Team

- Cassidy Lynne

- Chun Ming Tse (Eric)

- Dilak Lokuvithana

- Vivian Lee

The entire team, through lengthy team meetings and discussion, have all contributed to the programming of the Matlab code.

The Project

This particular project allows us to design and implement a barcode reader through the use of image processing within MATLAB. The "hidden" code within the barcode must be determined and made visible to the user via the GUI.

For full documentation regarding project requirements and objectives, please visit the Signal Processing wiki: Bar Code Reading From Image


Image:readerclip.jpg


What to Include in the Documentation

- Rules of the Barcode

- Image processing techniques utilised (including any enhancements)

- Implemented steps for reading the barcode from the image

- Sample input files and corresponding output files

- Advantages of the technique as well as any limitations

NB: these can be found in the project documentation for "Bar Code Reading From Image"

Image: check.jpg


Barcode Standards

Barcodes are prevalent in everyday life, affecting the way consumers purchase products. It automatically identifies encoded information within an array of parallel bars and spaces of varying widths. At present, barcodes can also be designed as patterns of dots and hidden images. There are over 300 types of barcode symbologies, with the predominant being Code 39, UPC or EAN. Each barcode symbology are categorised as either one-dimensional or two dimensional.

Barcodes are designed to be machine-readable, through optical scanner, or captured from an image using specialised software. An optical scanner utilises a beam of light across the width of the barcode, measuring the lengths of reflection (space) or no reflections (bars). Within a computer, the software also analyses the lengths and positions of each bar and space. Overall, it is believed that deciphering barcodes through image software is simpler.

The predominant advantages of employing barcodes are speed and accuracy. The only other option to identify products, especially in a point of sale system, is manual data entry. The advantages are clearly evident!

Within this project, the UPC-A barcode standard has been chosen.


Image: upcabarcode.gif


UPC-A Barcode Standards

Image Processing Tools & Techniques

Barcode Recognition involves a wide range of activities to ensure that the give image is properly processed and deciphered by the prgram. Due to the unpredictability of all available images, limitations to the project technique will be experienced and recorded. One thing to note, however, is that not all images will be able to be deciphered due to various reasons. Our aim is to ensure that a large majority of images will be decoded through our program.

We will be using the Image Processing Toolbox within Matlab in our implementation.


The Process


Image: process1.jpg


Matlab Graphical User Interface

To ensure our program is user-friendly, we have designed a GUI within Matlab. This GUI enables the user to choose the image they wish to decode and outputs the respective numeric code. It also alerts the user of any errors associated with deciphering the chosen barcode.


Deblurring and Noise

Since not all barcodes will be deemed "perfect", we have included a function to enable us to initially clean-up the image from any noise that can be prevalent within the chosen image. One thing to note, however, is that some images may be too blurred or noisy for successful deicphering. If this is the case, the program will alter the user via the GUI.


Angular Rotation

Angular rotation of the image involves the barcode being read from all positions, that is 360 degrees. We have designed the program such that the barcode can be straightened up for successful recognition by the image recognition software.


Barcode Image Recognition

The Barcode Image Recognition coding is the crux of our project. It enables us to extract the barcode from the given image for successful decoding.


Barcode Deciphering

Barcode deciphering allows us to convert the image to a numeric sequence of numbers, associated with the encoded code. The is ultimately the final outcome of the program and allows the users to test if the barcode is in actual fact, UPC-A; as well as viewing the extracted code.

Advantages and Limitations of our Approach

There are numerous reasons why the UPC-A symbology was chosen as a standard for this program. The advantages as discussed in the link below.

Since all images differ from each other, there are a multitude of different images that can be used as input to the program. Due to limitations with existing functions within Matlab, we are unable to decode every single barcode that is made available to us. This idea is aligned with the real world where a large proportion, but not all, images can be decoded using the barcode scanner or computer imaging software.


Advantages and Limitations of the Implemented Approach


Future Improvements

Noticeably, our system is not perfect and hence, numerous improvements can be implemented within the program in the future.

Future Improvements of Implementation


Systems & Development Perspective

The Systems and Development perspective within this project denotes how the constructed program can be integrated within realtime hardware and hence, a larger system. Ultimately, the means in which the program can be created into a product, in conjunction with other components can be defined within this component.

Systems and Development Perspective

References

To view references, please select this link: Team F: References

Group Discussion Board

Follow this link to Group F: Discussion Board

Personal tools