SoftwarePractice.org: Home | Courseware | Wiki | Archive

Bar Code Reading From Image

From SoftwarePractice.org

Overview

Bar code is a popular method of “numbering” or “identification” of objects. Every bar code is composed of a combination of “bars” and “spaces” to denote particular alpha-numeric identification to an object. The use of bar code reduces the clerical error in data entry or modification, saves time for manual entry and increases efficiency in terms of tracking, locating a particular object.

Every bar code follows a certain standard rule. These rules guide the representation of any human-readable characters (or numbers) into specific combination of bars and spaces. There are several such rules available (and details can be obtained from internet).

Typically bar codes are read using hand held devices. One limitation of such devices is that an operator needs to be close to the object to scan the code. As opposed to it, image based bar-code reading can potentially read barcodes from any image taken by a camera. In principle, an image can be searched for the presence of the barcode and then obtained bar code can be read utilizing image processing technologies.

Project


You will implement a GUI based Bar code reader through image processing in MATLAB.

The programme should:

  • Provide an interface for the user to input any image containing the bar code
  • Display the extracted code as output

The output will be the extracted code through image processing. You can choose any bar-code standard you like.

Note that, in general, barcode images are not "clean." Image recognition of barcodes can take place on any image captured by a camera, and in the real world conditions are not ideal. Your program should therefore account for the following (possible reasons for the imperfection noted in parentheses):

  • Image rotation (the barcode is rotated with respect to the camera)
  • Noise (poor signal to noise ratio, bad lighting conditions, image taken through glass, and so on)
  • Blurriness of the image (the camera is out of focus)
  • Unknown size (the object with the barcode on it is an unknown distance away from the camera taking the image)
  • Affine distortion (the object with the barcode on it is not perpendicular to and on-axis with the camera)

Because of the complexity of the problem, you should break it down into a series of steps. For example, first solve the easy problem: recognizing a barcode that fills the whole image, is straight, in perfect focus, and has no noise. Then start to find ways to address the possible imperfections and flaws in the captured image of the barcode.

Your project documentation should include:

  • The specific rules of the bar-code you chose
  • The image processing techniques you used along with any possible enhancements.
  • A description of the steps you implemented for reading a bar code from an image.
  • Several sample input files and corresponding output codes.
  • Intermediate results, demonstrating how the program works and the compensation for the imperfections listed above.
  • Matlab code, image samples, image spectra, and so on, to demonnstrate how the program works and your understanding of the problem.
  • A discussion of the advantages or limitations of the approach you chose, with specific examples given (such as images that were and were not recognized properly by your program)
  • A list of references from where you obtained any information while solving the problem.
Personal tools