Seminar Topics & Project Ideas On Computer Science Electronics Electrical Mechanical Engineering Civil MBA Medicine Nursing Science Physics Mathematics Chemistry ppt pdf doc presentation downloads and Abstract

Full Version: Image Processing in Java pdf
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Image Processing in Java

[attachment=51352]

ABSTRACT

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.

INTRODUCTION

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 [1]
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 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.

INTRODUCTION TO IMAGE PROCESSING

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.
A simple example: how do we find out the differences between two images? We
execute an “Arithmetic Subtraction” operation [2] on both images. As the name implies,
subtraction leaves the difference, the resulting image would contain the differences
between the two images.
Image processing is used in many different fields. In medicine (the ultrasound machine,
X-ray machine), astronomy (Hubbles telescope taking photographs in X-rays, Gamma
rays, Infrared) and military (image maps used in ground hugging missiles), these are
just a few of the fields in which image processing is widely used.
Image processing is also used in every day items (digital cameras) to mission critical
systems.

USABILITY

It is not possible for non-MMX applications to use the power of MMX. This means that
applications have to be specifically written for MMX. On a higher level, this means that
the source code will have to be recompiled with a compiler that can generate and
optimise MMX instructions.

COMPATIBILITY

Most of the microprocessors that came out after the introduction of MMX, support the
MMX instruction set. Currently, nearly all major computer microprocessor
manufacturers, including Intel, AMD and Cyrix, support MMX. Therefore,
programmers are almost guaranteed of MMX supported hardware (at least for the
desktop computers).

USAGE AND USABILITY

DirectX provides developers with a common set of instructions and components, across
all Windows based platforms. At the same time, DirectX also takes advantage of high
performance hardware such as dedicated 3D graphics cards. DirectX achieves this by
providing a "hardware abstraction layer" (HAL), which uses software drivers to
communicate between computer software and computer hardware. As a result,
developers can use DirectX to write a single version of their product for the wide range
of hardware devices and configurations that exist and at the same get high performance.
DirectX provides another layer called the “hardware emulation layer” (HEL). This layer
acts as software-based drivers for actual hardware when hardware is unavailable. For
example, HEL could emulate 3D graphics when there is no 3D graphics available.