https://github.com/ma-tech/Woolz
Raw File
Tip revision: 5ab012fff0fb50186d6ea8508f0d8b3063c45dc3 authored by Bill Hill on 15 August 2022, 13:30:41 UTC
README now Readme.md.
Tip revision: 5ab012f
Core.dox
/*!
\mainpage Woolz Core Software

\section overview Overview
Woolz is the name (not an acronym) for a set of image processing software.
The <b> Core</b> software is organised as a series of libraries for
application development and a set of <b>Command-Line Binaries</b>
which can be used for simple image processing or embedded in scripts
for more complex operations. Large scale applications with graphical
user-interfaces such as Reconstruct or MAPaint are documented elsewhere.
The source code is maintained under git and is available as open-source
(under the general GNU GPL 2 licence)
Either from the EMAP site or from
<a href="https//github.com/ma-tech/Woolz"></a>github</a>.
Bug and issue reporting should be done
through thea github
<a href="https://github.com/ma-tech/Woolz/issues">issues</a> page.
This documentation is
generated using <a href="http://doxygen.org/">Doxygen</a>
and is available from both
<a href="http://www.emouseatlas.org/emap/analysis_tools_resources/software/woolz/html_Core/index.html">EMAP</a>
and
<a href="https://ma-tech.github.io/Woolz/documentation/html_Core/index.html">github</a>.

The best way to use this documentation is to open the "Modules" menu-folder
in the index on the LHS browser window. If you simply want to use the
command-line binaries then select "Basic woolz operations", "Data Format
Conversion" or "Extended Applications". These each expand to a list of
the binaries available for which there is a manpage-style page available.
In each case there will be (not yet complete) example usage and a
brief description. If you are interested in using the library functions
then consult the library modules and browse for the required function.
Example usage is most easily found in the set of binaries available
with the source code.

This documentation provide manuals and code documentation for the
 core libraries and associated command-line binaries. Using these
 binaries sophisticated image-processing applications can be developed
 and prototyped using standard unix scripting. In addition the
 libraries have a Java binding to allow the use of very fast and
 efficient C-code with a Java interface.

More detail of the code can be found in the sub-sections
\subpage binaries "Command-Line Programmes" and
\subpage libraries "Software Libraries".
Compiled versions and source code can be obtained from the EMAP web-site
<a href="http://www.emouseatlas.org/">www.emouseatlas.org</a>.

\section sstructure Structure
The woolz software is organised as a series of software libraries with
 a hierarchical dependency. The compiled binaries are compiled against
 these libraries with in some cases link to other non-system libraries
 such as libtiff and libjpeg. The source code is organised as a series
 of directories, one for each library and programme group. The set of
 directories is:
\li \c binWlz - simple command-line binaries which typically execute
 a single woolz library function
\li \c binWlzExtFF - commmand-line binaries for data format conversion
\li \c binWlzApp - more complex programmes for image programming
\li \c libAlc - library for memory allocation and memory management
\li \c libAlg - library of numerical algorithms
\li \c libWlz - basic image processing operations, the core of the
 woolz image processing system.
\li \c libWlzExtFF - library for format conversion and I/O to different
 image standards.
\li \c libbibfile - "bibtex" formmat file handling, used for many
 standard metadata files generated by woolz applications such as MAPaint
 and Reconstruct
\li \c libhguDlpList - library implmenting functions to create and manipulate
 doubly-linked lists.
\li \c libReconstruct - obselete library for image registration and alignment,
\ now incorporated into linWlz.
\li \c libWlzBnd - library for special Java bindings as part of the Java Woolz
 automated mapping.
  
*/

/*!
\page binaries Command-Line Programmes
\section binaries_intro Introduction
The woolz library functions are complemented by a set of programmes or
 binaries for 
command-line processing of woolz formatted data. Most binaries can read data
from standard input and will write to standard output and can therefore 
be used in unix "pipeline" mode. This allows efficient concatenation of
multiple imaging operations for rapid prototyping and script development.

The binary codes are all installed in the Mouse Atlas bin directory
(usually /opt/MouseAtlas/bin) and provide a significant proportion of the
libWlz plus supplementary library functionality. Simple binaries for
 the basic woolz functions are under \subpage binwlzpage "binWlz",
 other binaries
relating to format conversion are under \subpage binwlzextffpage
 "binWlzExtFF" and
more complex applications can be found under \subpage binwlzapppage
 "binWlzApp".


*
*/

/*!
* \page libraries Libraries
* \section libraries_intro Introduction
The core woolz image processing library, \subpage libwlzpage "libWlz",
 was developed for
 the purpose of microscope slide scanning. libWlz holds the basic image processing
 functionality, supplementary libraries provide functionality for memory allocation
 and management, numerical algorithms, external format conversion and other
 commonly used programmatic tools. These are:
\li \subpage libalcpage "libAlc"  - memory allocation and management
\li \subpage libalgpage "libAlg" - numerical algorithms
\li \subpage libwlzextpage "libWlzExt" - image format conversion and meta-data IO
\li \subpage libbibfilepage "libbibfile" - IO if "bibtex" format data - standard
 plain-text meta-data
\li \subpage libdlplistpage "libDlpList"- linked-list structures and
 procedures for management, sorting and query.

The original woolz software set included libraries for classification and
chromosome analysis, these are not included in this package. All libraries
are developed in ANSI Standard C and have been successfully used on any
Unix system tried so far including Solaris, Linux, IRIX, HPUX, MacOSX. 
It is also availbale under Windows either using Cygwin or directly using
 the Microsoft C++ compiler. In addition there is a Java mapping available
for the woolz library to allow image process from Java code.

\section Structure Overview
Woolz has been generated over many years at the Medical Research Council
 Human Genetics Unit in Edinburgh. The basic image processing library
 originally developed has been extended to include a range of numerical
 algorithms and libraries for standard programming tasks. The code has been
 converted to ANSI standard C and standardised with respect to nameing
 conventions and error reporting. Finally the code has been checked for
 memory errors such array bound exceptions and leaked bytes. The code is
 maintained by a number of developers at the MRC and version control is
 under CVS. The code is open-source and freely available for academic
 non-profit use. For commercial use of the software please contact
 matech@hgu.mrc.ac.uk.

The libraries are organised to hierarchically and need to be linked
 accordingly. The dependencies are:
\li libAlc - none, system library libc
\li libAlg - libAlc, system library libm
\li libbibfile - libAlc
\li libhguDlpList - libAlc
\li libWlz - libAlg
\li libWlzExtFF - libWlz, libbibfile, external libraries libtiff and libjpeg

\section install Installation
The source code and/or compiled versions of the libraries can be
downloaded from the Mouse Atlas Web site
(http://www.emouseatlas.org/emap/analysis_tools_resources/software.html).
The installation instructions
are provided as part of a "README.txt" file
which requires the selection of a path
(e.g. /opt/MouseAtlas) as the root of all Mouse Atlas software. The code
is then installed in standard Unix fashion in src, share, lib, bin and
so on.

\section history Software Development History
The Woolz software has been developed over many years by many
people with its roots in chromosome spread image analysis and
microscopy imaging in the 1970s.
The initial development by Dr Denis Rutovitz was in Fortran and defined a
number of the key woolz structures, primarily the interval coding of
the spatial domains and grey-level values.
The current C-coding was initiated in the 1980s,
primarily by Dr Jim Piper. The coding has been transformed to its present
form in a number of steps as part of early Alvey and EU funded projects
and more recently as part of the Mouse Atlas porject at the HGU. This 
has include a large expansion in some of the grey-level image extgensions 
to the library.
The Woolz image processing library is optimised
for efficient for binary and morphological operations.
The software has been developed
in ANSI standard C.

Originally the code was developed by the Pattern Recognition Section
of the Medical Research Council (<a href="http://www.mrc.ac.uk/">MRC</a>)
Clinical and Population
Cytogenetics Unit, since 1995 it has been developed as part of the
Edinburgh Mouse Atlas Project
(<a href="http://www.emouseatlas.org/">EMAP</a>) at the
MRC Human Genetics Unit
(<a href="http://www.hgu.mrc.ac.uk/">HGU</a>).
The Woolz software is a series of
libraries supporting a range of image processing operations and
is built into a number of larger applications such as MAPaint,
Reconstruct and the Jave JAtlasViewer. It also underpins the
Edinburgh Mouse Atlas of Gene Expression
(EMAGE) database defining
the spatial content and providing the mapping, comparison, analysis
and warping capabilities.

The current Woolz software is primarily maintained by Richard Baldock and 
Bill Hill at the MRC Human Genetics Unit.
 
\section pubs Publications

*
*/

back to top