资源说明:Woolz is a set of software libraries and executables for image processing.
The Woolz Image Processing System ================================= Bill.Hill@igmm.mrc.ac.uk 2016 Contents -------- 1) What is Woolz 2) Where can I get the Woolz software? 3) How can I build Woolz? 4) How can I use Woolz? 5) File formats. 6) How can I write my own Woolz code? 6a) The Woolz Object ("It's object orientated, sort of") 6b) Access Methods 6c) Geometric Models 6d) Contours 6e) Affine Transforms 6f) Basis Function Transforms 6e) Meshes 7) Documentation 1) What is Woolz? ----------------- Woolz is a set of software libraries and executables for image processing and pattern recognition that was initially developed at the MRC Clinical Population and Cytogenetics Unit. This has now become the MRC Human Genetics Unit (HGU) and is part of the Institute of Genetics and Molecular Medicine (IGMM) at the University of Edinburgh. Woolz was initially developed for fast microscope slide scanning, chromosome image analysis, pattern recognition and a wide range of image processing and analysis problems. The original authors of the software are Dr. Denis Rutovitz and Dr Jim Piper although the software has developed and expanded considerably since their initial work. Woolz has been adopted as the standard for the Mouse Atlas Databases (http://www.emouseatlas.org) and is used for all the reconstructions, anatomical, gene-expression and spatial domains. This is because the interval coding used in Woolz provides significant computing advantages in a range of image processing functions specifically in set operations (such as union, intersection, etc.) morphological operations (erosion, dilation etc.) and other binary image processing such as distance transforms, segmentation and labelling. In general Woolz is very efficient with respect to both memory use and time. The Woolz data structures are, in general, compact and in terms of grey-level data minimise memory usage without compression (which in principle could also be applied). It is especially efficient for morphological and set operations because of the way it's 2 and 3D domain objects are encoded using intervals. All pixel or voxel based image processing systems which allow image query via floating point coordinates need to define what a pixel is by the relationship between the integer pixel/voxel coordinates and the floating point query coordinates. In Woolz a pixel or voxel is defined to be an image sample centred at the integer coordinate. Following from this definition the C macro WLZ_NINT(), which returns the nearest integer to the given float, should be used in queries of pixel/voxel values when using floating point coordinates. Since it's adoption by the Mouse Atlas Project there have been many significant developments in Woolz, which have primarily been focused on 3D reconstruction, transforms, registration and warping. Woolz has been written in ANSI standard C so that it will build and run on all computing platforms that support some basic requirements, such as supporting at least 32 bit integers and IEEE floating point. The software is know to build on GNU/Linux, MacOSX and Solaris systems. It will also build using MingW on Windows systems. The code is partitioned into the following modules: libAlc: Library providing generic data structures and memory allocation functions. libAlg: Library providing basic numerical algorithms. libbibfile: Library with bibfile style input/output functions. libhguDlpList: Library with a generic doubly linked pointer list. libReconstruct: Library with code for 3D alignment of 2D section images to form a 3D image. libWlz: The Woolz image processing library. libWlzBnd: Library with small functions that bind Woolz to other languages. libWlzExtFF: Library for external data format input/output. binWlz: Small command line based Woolz programs. binWlzApp: More small command line based Woolz programs. binWlzExtFF: Small command line based Woolz programs which use external file formats. binWlzTst: Small command line based test programs for Woolz. The authors include (in sort order): Bill Hill Christophe Dubreuil Elizabeth Guest Jianguo Rao Jim Piper Konstantinos Liakos Margaret Stark Nick Burton Richard Baldock To contact the authors please use ma-tech@igmm.ed.ac.uk. The skeleton for the autoconf system was shamelessly copied from Tina (http://www.tina-vision.net). 2) Where can I get the Woolz software? -------------------------------------- Woolz is available as source from GitHub (https://github.com/ma-tech/) and can be downloaded pre-built for some architectures from the e-Mouse Atlas Project (http://www.emouseatlas.org/emap/analysis_tools_resources/software.html). 3. How can I build Woolz? ------------------------- Woolz should build easily on most modern systems that have the GNU Build system (see http://en.wikipedia.org/wiki/GNU_build_system). In most cases the simple script build.sh should be sufficient to build Woolz. This script simply runs autoreconf followed by ./configure with various options. It's probably best to copy build.sh to mybuild.sh and then set the required options for the build you want. Sometimes the configuration will fail with messages relating to libtool. In these cases running: autoreconf -i --force may fix the problems. Complains from configure that m4 can't be found can probably be fixed by running: automake --add-missing The build script build.sh simply runs autoreconf followed by ./configure with the appropraite options. A prefix can be given in the configure stage to define where the programs, libraries are will be installed, conventionally this is /opt/MouseAtlas. Use ./configure --help to see all the options available. 4) How can I use Woolz? ----------------------- There are over 200 small command line programs within Woolz. All of these accept -h as an argument to show their usage. On unix-like systems it is common to combine these small programs into a single command line with pipes. These programs include those for: applying affine, basis function and mesh based transforms registration of spatial domain objects and surfaces reconstruction from serial sections morphological operations (erosion, dilation, etc) and fill set operations (union, intersection etc) feature extraction mesh generation contour generation convex hulls distance transforms histograms thresholding and labelling grey and colour image value filters As an example, the following thresholds a 3D image, applies erosion and dilation to remove small isolated regions, labels (segments) the image into separate objects and the prints the volume of each isolated object: prompt% WlzThreshold -v135 -L ts14.wlz | \ WlzErosion -c26 -r2 | \ WlzDilation -c26 -r2 | \ WlzLabel | \ WlzVolume Object 1: number of voxels = 66 Object 2: number of voxels = 45 Object 3: number of voxels = 45 Object 4: number of voxels = 66 Object 5: number of voxels = 159 Object 6: number of voxels = 45 Object 7: number of voxels = 45 Object 8: number of voxels = 58 Object 9: number of voxels = 276 Object 10: number of voxels = 45 Object 11: number of voxels = 138 Object 12: number of voxels = 45 Object 13: number of voxels = 45 Object 14: number of voxels = 137 Object 15: number of voxels = 45 Woolz can also be used as a set of C libraries, or via a binding to another language. Currently these bindings exist for Java, Python and R. For details of these bindings see the JavaWoolz, PyWoolz and RWoolz repositories. 5) File formats. ---------------- The encoding of Woolz objects when serialised to files is defined only by the source code in the WlzReadObj()/WlzWriteObj() functions. For historical reasons there is no unique identifier (magic number) for Woolz objects. Woolz objects can also (usualy with some loss of information) be written to other (external) file formats. The program WlzExtFFConvert can be used to convert between supported file formats. As with all the small Woolz programs, the -h option will show usage, but for WlzExtFFConvert it will also list the file formats which are understood: prompt% WlzExtFFConvert -h Usage: WlzExtFFConvert [-h] [-s] [-b] [-d ] [-D ] [-f] [-F
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。