Web Content Display Web Content Display

Project Project

Language Emulator




Our project is intended to help tourist understand what has been written on sign boards. The project uses the primary gadget every tourist carries that is his mobile phone. A photo taken from the mobile phone is needed to be sent to the server and server does the character recognition, language translation and sends the customer the translated text via SMS.


Our project mainly is divided into 4 modules.

  1. Request Acceptance
  2. Character Recognition
  3. Language Translation
  4. Response Delivery

We use these software in our project to complete these four modules. And all the software are java based.

And the software are:


The JSR-82 is the official Java API for Bluetooth wireless technology. Using this API you can create applications that perform any of the following functions:

  1. Determine and inspect the properties of your own Bluetooth device
  2. Discover Bluetooth devices within the communication range of your device
  3. Search for services on remote Bluetooth devices
  4. Create Bluetooth client applications that can communicate with remote Bluetooth servers
  5. Create Bluetooth server applications that can service requests from Bluetooth clients


The JSR-82 consists of two packages, javax.bluetooth and javax.obex. Your own Bluetooth device is represented by the javax.bluetooth.LocalDevice class and all remote Bluetooth devices are represented by the javax.bluetooth.RemoteDevice class.

Blue Cove


Blue Cove is a JSR-82 J2SE implementation that currently interfaces with the Mac OS X, WIDCOMM, BlueSoleil and Microsoft Bluetooth stack found in Windows XP SP2 and newer. Originally developed by Intel Research and currently maintained by volunteers.

Blue Cove runs on any JVM starting from version 1.1 or newer on Windows Mobile, Windows XP and Windows Vista, Mac OS X. details.

Sending Files


One can use RFCOMM or OBEX to send and receive files between Bluetooth devices. However, RFCOMM is the better choice when you want to send and receive stream data, just like you would with a traditional serial port. In the real world, RFCOMM should be used when you want to take a traditional serial port application and make it Bluetooth-enabled. If you're sending simple text strings between two Bluetooth devices (as in a chat application), then there may not be much of an advantage to using OBEX. In this case, you should probably use RFCOMM or L2CAP.


On the other hand, OBEX is great when you want to send object data such as files. Using OBEX, you can send not only data, but you can also send context or metadata about the payload. For instance, when sending a file using OBEX, you are also able to send other useful information about the file such as the file name, file type, file size, or anything else that you want to describe the file.

JAI (Java Advanced Imaging)[6]

(For character recognition)



The Java language advantages are its low cost, licensing independence and inter-platform portability. The JAI API advantages are its flexibility and variety of image processing operators. Image processing algorithms usually require the manipulation of the image data (pixels).


One example of a JAI operator is the "filestore" operator used in the code in the listings 1 and 2 to store an instance of PlanarImage (or of a subclass of it) in a file. The call for the JAI.create method used as arguments the name of the operator, the instance of PlanarImage, a file name and a string containing the desired image file name ("TIFF", "JPEG", "PNG", etc.). Another example of operator, which does not use the instance of ParameterBlock, a call to JAI.create ("fileload, imageName); will load and return an image which file name, is contained on the string imageName. Other operators and code snippets that illustrate its usage will be shown in this section. A list of all operators can be found on the JAI API documentation [6], on the documentation for the package javax.media.jai.operator.

Band manipulation operator is the "bandcombine" operator, which uses several image bands to combine them into a single multiband image. This method could be used to create a RGB image from three separate red, green and blue images, for example.

Some other simple operators are "add", "subtract", "Multiply" and "divide", which performs basic arithmetic operations on two images, giving a third as result. The code snipped shown in listing 11 shows how two images (which are presumably already created or read from files) can be added, subtracted, multiplied or divided depending on which button on an user interface was clicked.