edu.berkeley.guir.papier_mache.barcode
Class CybercodeDecoder

java.lang.Object
  extended by edu.berkeley.guir.papier_mache.barcode.CybercodeDecoder
All Implemented Interfaces:
BarcodeDecoder, CurrentPhobsListener, java.util.EventListener

public class CybercodeDecoder
extends java.lang.Object
implements BarcodeDecoder, CurrentPhobsListener

Author:
Ray Su ( raysu(AT)cal.berkeley.edu ), Scott Klemmer ( srk(AT)cs.berkeley.edu ) This BarcodeDecoder can detect and decode multiple Cybercode barcodes in a image found by a Vision Phob Producer. It is robust enough to decode Cybercodes in all orientations except for 1. up-side down orientations 2. orientations where the barcode is captured with perspective skew. "The CyberCode is a visual tagging system based on a 2Dbarcode technology developed by Sony and provides several features not provided by other tagging systems. CyberCode tags can be recognized by the low-cost CMOS or CCD cameras found in more and more mobile devices, and it can also be used to determine the 3D position of the tagged object as well as its ID number." For a detailed specification and discussion of its usage, see http://www.csl.sony.co.jp/person/rekimoto/papers/dare2000.pdf Download samples of real Cybercode Barcodes from http://www.vaio.sony.co.jp/Download/d_giga02.html

Constructor Summary
CybercodeDecoder(VisionPhobProducer visionProducer, BarcodePhobProducer barcodeProducer)
           
 
Method Summary
static javax.media.jai.PlanarImage cropAndRotate(VisionPhob phob)
           
 void phobSetUpdated(CurrentPhobsEvent e)
          Implement a CurrentPhobsListener method.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CybercodeDecoder

public CybercodeDecoder(VisionPhobProducer visionProducer,
                        BarcodePhobProducer barcodeProducer)
Method Detail

phobSetUpdated

public void phobSetUpdated(CurrentPhobsEvent e)
Implement a CurrentPhobsListener method. When the current set of VisionPhobs get updated, group the phobs based on proximity to one another and attempt to decode all Cybercodes in the set and fire the appropriate PhobEvent.

Specified by:
phobSetUpdated in interface CurrentPhobsListener

cropAndRotate

public static javax.media.jai.PlanarImage cropAndRotate(VisionPhob phob)
Parameters:
phob -
Returns:
PlanarImage, cropped and rotated from the raw image source of the VisionPhob input, null if the cropping is unsuccessful