-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathCore.dox
202 lines (181 loc) · 9.35 KB
/
Core.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
/*!
\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
*
*/