/taspa

Automatically exported from code.google.com/p/taspa

Primary LanguageC++

=========================================================================
Topological all shortest paths automatique' (TASPA) 1.2.0, Jan 5, 2010
=========================================================================

TASPA is an image processing program using arbitrary boundary detection 
algorithms to generate an all-pairs shortest paths matrix in the ground 
space of a bitmap.

TASPA is designed to demonstrate a vertex thinning algorithm, using word 
combinatorics to find the minimum set of convex vertices. It then applies 
Thorup's SSSP algorithm from each vertex to generate a matrix whose entries 
[a_ij] are the next edge to traverse from vertex i to vertex j.

NOTE: As far as I know, this version is bug-free for all necessary features
and is mostly bug-free for all additional features. I would appreciate any
feedback concerning bugs, along with a copy of the input and output bitmaps 
from which you found them.

-Jake Askeland
jake (dot) askeland (at) gmail.com


=========================================================================
Dependencies
=========================================================================

Originally built with the following utilities:

	GCC version 4.4.1 (also compiles on 3.4)
	GNU Make version 3.81
	
Tested on:

	GCC 4.4.1, GCC 3.4, and Intel ICC 11.1

Optional libraries (must be installed before-hand):

    SDL-image 1.2.0 (or later)

Windows:

    Compiles with both MinGW and Visual C++; however, the only
	 testing I've done on Windows suggests I need to do a lot of
	 debugging.


=========================================================================
Installation
=========================================================================

--- Linux and Unix derivatives (including Darwin) ---
Run the following, from this directory, in this order:

./configure
make
su -c "make install"

Now you can use 'taspa' from the command line.


=========================================================================
Example Usages
=========================================================================

From the 'bitmaps' directory, try the following from the command line
after installation:

  taspa -v -d footprint robot_map.bmp robot_map.bmp
  taspa -v maze_grey.bmp maze_grey.bmp
  taspa -v -d color_variation face_sm.bmp face_sm.bmp


=========================================================================
Built-in boundary detectors
=========================================================================

TASPA currently has five built in boundary detection algorithms 
(referred to as distillers) which can be specified with the '-d 
[distiller_name]' command line option:

	luminance (default)	Takes any pixel whose luminance
				is above 50% of maximum as traversable.
	
	avg_luminance		Takes the average luminance of 
				neighboring pixels with
				above 50% maximum as traversable
				(good for natrual image filtering).
								
	color_variation		Pixels whose color (luminance-
				independant) variation between 
				opposing neighbor pixels, 
				beyond a small threshold, are
				*untraversable* (good for natrual
				images with shadows).
				
	lum_diff		Compares the previous neighbor pixel to
				the current pixel. If luminance diff is
				less than or equal to 12.5%, pixel is
				traversable.
				
	footprint		Supposes the size of the thing traversing
				the map has a 9x9 footprint; thus a pixel
				only remains traversable if each pixel in
				the 9x9 grid surrounding it was originally
				traversable. 
								

=========================================================================
Formats supported
=========================================================================

Input formats
--------------
Bitmap:		24 bit RGB    (standard color bitmap)
		8 bit indexed (256 colors from a 24 bit pallet; buggy)
		
If the SDL-image library was available when compiling Taspa, the 
following formats may be supported (depending on your SDL build):
BMP, LBM, GIF, JPEG, PCX, PNG, PNM, TGA, TIFF, XCF, XPM.

Output formats
--------------
Bitmap:		24 bit RGB    (standard color bitmap)


=========================================================================
Known issues
=========================================================================

None.