Downloads:
- Image Analysis Toolkit [02/26/2005] (233 kb zip)
- Readme
- Video on Poly-Select (XVid)
- (02/26/2005) - Fixed the malfunctioning 'exe' wrapper for the program, mostly cosmetic and minor bug fixes this time around (too much work lately! :P).
-
(08/10/2004) - Made numerous bug fixes in the program's behaviour. Implemented a few new plugins, such as halftoning, but
still in the process of working on analysis based filters.
Source: 16241 lines (in 27 core classes, and 60 modules)
A Work in Progress. I decided to write the Image Analysis Toolkit to better grasp digital image processing techniques and concepts as well as Java graphics programming. In its current state, it is more of a image-filter application (and a simple one at that), but I intend on using it as a test-bed for future workings with digital imaging (heck, at least it saves me the need of having to write an image loader every time). Currently, it supports loading [bmp, jpg, gif, png], saving [jpg, png, NOT gif], and supports a few "plugin" filters for my program (see below). The program is module based, so plugins for analyzing and filtering images can be created dynamically. If you are interested in writing some plugins, check out the documentation to be bundled with the program.
This is not intended to be an image editor of sorts,
there are much better programs for that such as GIMP, Paint Shop Pro, and Photoshop. Also, I am fully aware
that JAI allows for a much richer set of operations than standard Graphics2D implementations, but the thought of
asking everyone to download another five megabytes just to run this program is preposterous, however, I will reconsider
if JAI becomes mainstream though. This program can useful for many people, from those who don't care about
the kernel they are applying to an image; so long as they finds all the edges (for example), to those who are capable,
and willing to write simple plugins to streamline and direct their imaging work.
Final note: Feel free to email me if there are complications in getting
this to run on your system.
Currently, the filters are written to simply work, and are not optimized for speed, so if anyone wishes to help me with a few new filters or fixing the old ones, feel free to fire an email my way. Aside from the filters, there are information modules that analyze an image (or not). More will be up later.
I have a whole list of features yet to be implemented, but as mentioned above, if you wish to help
make some plugins of some sorts, feel free to send them to me to put up. Basically, if you know any
Java, and have played around with Graphics2D in any way, you are probably qualified to write a plugin.
In the future, I hope to implement the image comparison driver (from a previous project), but this
time, using a non-linear pattern recognition process (the previous one was nearly 1:1) which would
help it detect subtle and noisy differences easier. Also, some other modules high on my todo list would include a
steganography-based encryption module, pattern matching/object recognition, and 3D implementation of
the image space of a given picture.
Again, this is if my schedule permits.
Screenshots: (Taken in Java 1.5 JRE, compiled from Java 1.4.2_03 JDK)
Main workspace:

Filter previewing:

Filter previewing:

Filter previewing:

Filter application:

Histogram modules:

Post-run:

Preferences:

Listing of Image, Info and Misc plugins:

Help file (F1 in program):

History:
(06/05/2004) - Finally, started picking this up again. I am in the process of rewritting the program, so the download will be
removed until I finish the next version, which I hope will be faster, better defined (for extensions), as well as easier to user and write for.
(28/03/2004) - Quick update, for those interested, you can go to java.sun.com (HERE) and
download the JAI ImageIO, which allows you to read and write BMP, TIFF, JPEG2000 and a whole list of other image formats.
Use at your own discretion as I have not thoroughly tested it yet. Please follow the install instructions accompanying the download.
Also, Batchable interface should be implemented by next week.
(27/03/2004) - Apologies for missing last week, I simply did not have enough time to put in any new features.
However, this week, I've managed to scrap together a few things. Firstly, there's now a list of all the plugins loaded at
runtime (including descriptions and version information). Also got around to alphabetizing the shortcut help list (F1), and
added a new menu option to close all open windows. I've written a simple border image op. And last but not least, I've
written a LSB Text (least significant bit) steganography info operator. It allows for users to store information in an image
file, assuming that the file is saved in a NON-LOSSY image format such as PNG. For a neat example, download and decode THIS
image for more information about the LSB implementation. Note, it currently works with RGB/BGR/ARGB/Gray images, but NOT images
with indexed color models. I will hopefully have a LSB image implementation by next week. If anyone was wondering, LSB Text is
probably the least effective stego implementation known to mankind, never the less it is interesting to play around with,
look forward to better implementations in the future.
(13/03/2004) - Now allows for users to open multiple files at once. Sets correct locations on virtual desktop.
Shortcut added to re-cascade all windows in desktop. Added threshold input for preliminary image space tests. Added
General, and RGB/Log-RGB histogram info operations, as well as a Black and White Filter, and a RGB channel filter to
demonstrate the new previewed filter. Whew.
(08/03/2004) - Fixed bugs encountered when resizing, loading wierd filenames, and saving. Started implementing
some common shortcuts and such. Have a preliminary implementation of a preview plugin, which allows users to preview
the filters before applying.
(01/03/2004) - Minor update to the plugins, no more changes expected till next weekend.
(29/02/2004) - Whipped up a signature and a sample image space plugin. (NOTE: don't try to grab the image space
for files larger than 1000x1000, on my computer, Java is inclined to throw an OutOfMemoryError. I'm still
trying to fix that.
- Fixed a number of minor bugs, especially with loading and displaying small images.