Cameras
in mobile phones are no longer used just for taking snap shots. The
rapid growth of digital image processing has led to its growth of
application in mobile phones too. The cameras in mobile phones can now
be used to detect visual code markers in an image and eventually access
the information embedded to it. A scenario for such an image processing
is when one takes an image of the visual code marker next to the
advertisement of a movie. With this visual code marker the mobile phone
can decode the image and access the backend database to know the local
screening time of the movie. Thus for a camera to detect the visual code
marker in an image, it needs an implementation of unique algorithms.
These algorithms mostly have the four main stages to ultimately retrieve
its data. :
The
main four stages are pre-processing and segmentation, region analysis,
registration and thresholding. All these stages are based upon visual
code markers, how they are detected and decoded. Visual code markers are
two dimensional bar codes which consists of an 11*11 square comprised
of black and white bits. Two guide bars and three guide points are made
fixed points for its digital detection. Thus out of 121, 83 contains
specific information. These are read from top to bottom, right to left.
The
first stage pre-processing and segmentation aims at transforming the
captured image to a binary image to clearly identify the key elements of
a visual code marker. The captured 640*480 RGB image is converted to a
640*480 binary image highlighting the key elements such as guide bars
and fixed corners in the code marker. Next the image is enhanced to
reduce its noise and smoothen it by applying morphological open-close
filters which produces a grey scale image. After all the processing in
the first stage the resulting will be a binary image which identifies
the key element of the code marker. The next stage does a region
analysis where each key elements of code marker are localized and
grouped. The short and long guide bars are identified first, and then
with its properties the fixed corner regions are found. These region
analyses are made either based on intrinsic properties or geometric
relationship between two regions. The
registration is for correction for scaling and distortion in the image
since it can be taken at a variety of distance and angles. If multiple
code markers are present then registration is applied individually for
each marker. After obtaining all the bit locations the last stage reads
data bits from each grey-scale sub-image. Histogram equalization is
applied to the grey-scale image obtain maximum contrast between 1- and
0- valued bits. Bit values are determined by applying threshold at the
estimated bit centres. Thus
the algorithm is invariant to scaling, rotation and blurring caused due
to the device mobility. It is implemented in c and takes approximately
100ms to execute per image using a pentium4 3.40GHz computer.
Is this a new kind barcode, I've never seen it befor. And I want to know how to recognise this bar codes in java? Can it support multiple platform just like other barcode?