Software under GNU General Public Licence
How about contributing 
In this directory you can find a number of subroutines that can be added to semper 6 to extend its function . Some information about how to do this can be found at the Geotechnical Microanalyis and Micromorphology Centreality at The University of East Anglia.
Some information about writing semper library code, i.e. a sequence of
semper commands can be found here
and a collection of these are available here
and some for wiener-filtering can be found here
exldm.f Performs Interpolations/Rotations using
Higher-Order Lagrangian Methods, which can be much more accurate
than the simple bi-linear interpolation used in semper 6. The code is currently written in-place
with a 1024x1024 real array, which means it will probably not work on
DOS systems. It will only at present take real images, but modification
for complex ones would be simple.
get6.f This routine does a very low level read (GET) and
write (PUT) of semper images to a disc file. It is designed to exploit POSIX
compliant code, which means that it should be system independent. Requires
the utility library (see below), and see also inquire6 below. For more
information about the motivation for this code see here
ice.for Compresses byte of integer images, with a space saving that
can be up to 95%. See ice.doc for MSDOS help, ice.h for
the help insert information.
inquire6.f This routine prints out the titles of
a file created by the PUT command.
mfit.f Solves an equation of the form A X = B for X
where A is a nxm 2-D picture, B is nx1 and X is mx1, with B and X 1-D pictures.
This routine requires the lapack routine SGELS, and a local copy of lapack is
available as a tar.gz file (1.1Mb)
pput.f Converts B/W Semper Images to other formats
such as jpeg, tiff, gif using ImageMagik (which can be obtained from
the Web
or directly as a
tar.gz file.
shsem.f Launches a shell from within semper.
This code requires the BSD command system.
util.tar.gz This is a set of small subroutines that
are required for the commands PUT/GET and INQUIRE. For more
information about the motivation for this code see here
zhang.f This routine does low-level read of byte
or integer*2 information (with byte-swapping possible) where there is no title or size information
available. It can be easily modified to exploit this information if, for
instance, it is available from scanned data. It uses a low-level approach
which makes it rather portable across systems.
Author: L. D. Marks
Author: L. D. Marks
Author: N.K. Tovey with modifications by M.W. Hounslow and J. Wang
Author: L. D. Marks
Author: L. D. Marks
Author: L. D. Marks
Author: L. D. Marks
Author: L. D. Marks
Author: L. D. Marks