07-07-2014, 03:04 PM
Image Processing in Java
Image Processing in Java.pdf (Size: 293.84 KB / Downloads: 156)
SYNOPSIS
Image processing tools are being rapidly developed for different operating system
platforms. These tools are usually big in size, not completely portable across different platforms
and lack an ability to be efficiently fielded on the Internet.
The purpose of this project is to research current image processing tools and create a
simple, easy and flexible image processing widget based on the Java Advanced Imaging (JAI)
API. This widget will address the above-mentioned general problems associated with most
image processing tools. Some popular image processing applications are discussed,
including their strengths and weaknesses and their popularity. This is followed by a more
detailed discussion on creating a java widget based on JAI. The features that make this
widget easy to use to the average user, as well as any software developer wanting to expand it,
are discussed. Further advantages and disadvantages of this widget are also discussed.
This is followed by a specification for such a widget. This specification is developed into
a design and finally implemented.
Image processing is the ability to extract information from images. This is the shortest
and simplest definition of image processing. To extract information of any kind from an image,
the image has to be first transformed into a data set. Mathematical operations can now be applied
on to this data set. This thesis starts off with an introduction to image processing.
This is followed by descriptions of current image processing applications and libraries.
There are numerous programs that handle image processing. Matlab is one of the more popular
programs. Image processing involves intensive mathematics and Matlab being a program
designed for intensive mathematics is ideal for writing image-processing applications.
Matlab allows a user to manipulate at the lowest level, that is, individual values in the data set.
ImageMagick is another program that can do image processing. Unlike Matlab, ImageMagick
has command line tools that can be used for image processing. Another program,
Photoshop, is a cross between image processing and art. Photoshop was not designed for
image processing functions per se, but rather, for creative and artistic needs. DirectX is a set
of drivers from Microsoft that are optimised for 2D operations. To use DirectX, a user would
www.arits.in
197, North Car Street, Tenkasi – 627811. Ph: 9176667296, 9176767296
2
have to write a program which calls the necessary routine from the corresponding DirectX
file. DirectX was designed to give programmers a standard API (for Windows) for such
operations as image processing. This information gives some necessary background
information about todays image processing applications.
Java Advanced Imaging (JAI) is the Java Application Programming Interface (API) for
handling complex graphics. Unlike other graphics libraries, which are known to have
portability problems, JAI does not have this problem as JAI has been almost completely1
written in Java and thus is as portable as Java itself. Consequently, this portability comes
at a cost, namely the speed of processing. JAI is slower than other graphics libraries as it
runs in conjunction with a Java Virtual Machine (JVM). Despite this, JAI is still popular and
has other advantages. JAI is probably the most viable graphics library that can be deployed
over the Internet. The power is already in the JVM in the clients’ browser. JAI inherits Java's
highly modular programming structure allowing programmers to build highly modular
programs.
The brief definition of image processing is the ability to retrieve information from
images. This is achieved by, first transforming the image into a data set. Mathematical operations
can be done on this new format. Different kinds of information are retrieved by the different
operations that are performed on the data set. It is important to note that the reverse, constructing
an image from data, is also image processing.