Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Line: 197 to 190 | ||||||||
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < |
IsoSurf v1.5d Documentation | |||||||
> > |
IsoSurf | |||||||
Note that the functionality in this software is now available (and in many ways improved) in Stradview, which is much more powerful and has a much nicer interface. The only reason for continuing to use IsoSurf is if you need a command-line function. For extracting triangulated isosurfaces from blocks of data at varying resolutions, using regularised marching tetrahedra. If the resolution is higher than the inter-plane spacing, disc-guided interpolation is used to interpolate the cross-sectional data. | ||||||||
Added: | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < |
| |||||||
> > |
Program overview | |||||||
Changed: | ||||||||
< < |
| |||||||
> > | The input data is first read, then thresholded at a user-defined value, resulting in a set of binary cross-sections. These cross-sections can optionally be filtered using a morphological opening and/or closing with a disc size appropriate to the sampling resolution. This operation ensures that the contours do not contain features which are smaller than the sampling resolution. If no morphological filtering is used, the original data values are used to define the location of the cross-section in each slice more accurately - this can result in smoother surfaces at very high resolution. | |||||||
Changed: | ||||||||
< < |
| |||||||
> > | Having done this, each cross-section is transformed such that pixels in the image represent the minimum distance to the contour in that image (discussed further in a technical report). This improves both the interpolation of the surface and the smoothness of the surface display. | |||||||
Changed: | ||||||||
< < |
| |||||||
> > | Surface triangulation is performed at a user-defined resolution, using regularised marching tetrahedra (described in a technical report). If this resolution is greater than the inter-plane spacing (the z resolution), then additional planes are interpolated using disc-guided interpolation (described in another technical report). For faster though less realistic results, shape-based interpolation can optionally be used instead of the previous technique. Obviously higher resolutions will lead to greater surface detail, but also greater numbers of triangles - and therefore longer processing times for visualisation. | |||||||
Changed: | ||||||||
< < |
| |||||||
> > | The filtered cross-sections are also extracted and saved to a file as vectors which can be displayed in 3-D - this can be helpful in defining a sensible threshold for the input data. | |||||||
Added: | ||||||||
> > | As an extremely rough guide, triangles can be generated at about 4000 per second on typical modern hardware - plus several seconds for pre-processing (more if a very large filter is required due to a very low sampling resolution). This drops to 1000 or less triangles per second if the cross-sections also require interpolation - in this case the processing time is dependent on the complexity of the input data. | |||||||
Obtaining, installing and running IsoSurf | ||||||||
Line: 44 to 43 | ||||||||
Please note that IsoSurf is a research tool, and is intended for research / personal use only. Whilst the author would like to think it is fairly well written, it comes with no reliability guarantees - use at your own risk!
| ||||||||
Deleted: | ||||||||
< < |
Program overviewThe input data is first read, then thresholded at a user-defined value, resulting in a set of binary cross-sections. These cross-sections can optionally be filtered using a morphological opening and/or closing with a disc size appropriate to the sampling resolution. This operation ensures that the contours do not contain features which are smaller than the sampling resolution. If no morphological filtering is used, the original data values are used to define the location of the cross-section in each slice more accurately - this can result in smoother surfaces at very high resolution. Having done this, each cross-section is transformed such that pixels in the image represent the minimum distance to the contour in that image (discussed further in a technical report). This improves both the interpolation of the surface and the smoothness of the surface display. Surface triangulation is performed at a user-defined resolution, using regularised marching tetrahedra (described in a technical report). If this resolution is greater than the inter-plane spacing (the z resolution), then additional planes are interpolated using disc-guided interpolation (described in another technical report). For faster though less realistic results, shape-based interpolation can optionally be used instead of the previous technique. Obviously higher resolutions will lead to greater surface detail, but also greater numbers of triangles - and therefore longer processing times for visualisation. The filtered cross-sections are also extracted and saved to a file as vectors which can be displayed in 3-D - this can be helpful in defining a sensible threshold for the input data. As an extremely rough guide, triangles can be generated at about 4000 per second on typical modern hardware - plus several seconds for pre-processing (more if a very large filter is required due to a very low sampling resolution). This drops to 1000 or less triangles per second if the cross-sections also require interpolation - in this case the processing time is dependent on the complexity of the input data. | |||||||
Input data file formatThe original input data is assumed to be from a stack of parallel images, each of the same size. This is suitable for most medical imaging applications. The input data file should be structured as a `block of bytes', where the x coordinate varies fastest, then y, then z. If the input data is actually stored in one separate file per image, these files should be combined (e.g. usingcat ) into one file before running the program. | ||||||||
Line: 130 to 117 | ||||||||
Versions | ||||||||
Deleted: | ||||||||
< < | Version 1.5c and d - September 2001 | |||||||
Added: | ||||||||
> > | Version 1.5c and d - September 2001 | |||||||
| ||||||||
Line: 142 to 129 | ||||||||
leading to the generation of mesh-like surfaces.
| ||||||||
Deleted: | ||||||||
< < | Version 1.5b - August 2001 | |||||||
Added: | ||||||||
> > | Version 1.5b - August 2001 | |||||||
| ||||||||
Deleted: | ||||||||
< < | Version 1.5 - May 2001 | |||||||
Added: | ||||||||
> > | Version 1.5 - May 2001 | |||||||
| ||||||||
Line: 164 to 151 | ||||||||
high resolutions.
| ||||||||
Deleted: | ||||||||
< < | Version 1.4 - September 2000 | |||||||
Added: | ||||||||
> > | Version 1.4 - September 2000 | |||||||
| ||||||||
Line: 175 to 162 | ||||||||
More information provided in the error messages.
| ||||||||
Deleted: | ||||||||
< < | Version 1.3 - June 2000 | |||||||
Added: | ||||||||
> > | Version 1.3 - June 2000 | |||||||
| ||||||||
Line: 187 to 174 | ||||||||
be extracted from each cross-section.
| ||||||||
Deleted: | ||||||||
< < | Version 1.2 - April 2000 | |||||||
Added: | ||||||||
> > | Version 1.2 - April 2000 | |||||||
| ||||||||
Deleted: | ||||||||
< < | Version 1.1 - August 1999 | |||||||
Added: | ||||||||
> > | Version 1.1 - August 1999 | |||||||
| ||||||||
Deleted: | ||||||||
< < | Version 1.0 | |||||||
Added: | ||||||||
> > | Version 1.0 | |||||||
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < |
Dr Graham Treece, Department of Engineering | |||||||
> > | Dr Graham Treece, Department of Engineering | |||||||
IsoSurf v1.5d Documentation | ||||||||
Changed: | ||||||||
< < | Note that the functionality in this software is now available (and in many ways improved) in Stradwin, which is much more powerful and has a much nicer interface. The only reason for continuing to use IsoSurf is if you need a command-line function. | |||||||
> > | Note that the functionality in this software is now available (and in many ways improved) in Stradview, which is much more powerful and has a much nicer interface. The only reason for continuing to use IsoSurf is if you need a command-line function. | |||||||
For extracting triangulated isosurfaces from blocks of data at varying resolutions, using regularised marching tetrahedra. If the resolution is higher than the inter-plane spacing, disc-guided interpolation is used to interpolate the cross-sectional data. | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Obtaining, installing and running IsoSurf | ||||||||
Line: 119 to 123 | ||||||||
You can change the size of the triangles by altering the '-r' option. Adding the '-c' option causes the end caps not to be triangulated, as follows : | ||||||||
Changed: | ||||||||
< < |
![]() | |||||||
> > |
![]() | |||||||
Versions | ||||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.5c and d - September 2001 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
(d) fixed a bug when reading input files in Windows, and added | ||||||||
Changed: | ||||||||
< < | a high and a low threshold. | |||||||
> > | a high and a low threshold. | |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
(c) fixed a bug in thresholding introduced since version 1.5, leading to the generation of mesh-like surfaces. | ||||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.5b - August 2001 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Deleted: | ||||||||
< < |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.5 - May 2001 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
`-a' option added to centralise the output data around the | ||||||||
Changed: | ||||||||
< < | location (0,0,0). | |||||||
> > | location (0,0,0). | |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
If no morphological filtering is used (i.e. `-m n'), the data values are used to locate the cross-section in each slice more precisely. This can result in smoother surfaces when using high resolutions. | ||||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.4 - September 2000 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Co-ordinates of the vertices in the output surface shifted such that they can | ||||||||
Changed: | ||||||||
< < | be registered with the input data array. (0,0,0) is now at the start of the array. | |||||||
> > | be registered with the input data array. (0,0,0) is now at the start of the array. | |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
More information provided in the error messages. | ||||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.3 - June 2000 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
Can now write the surface triangulation in VRML version 1.0 format | ||||||||
Changed: | ||||||||
< < | as well as OOGL format. Added option '-v' for this purpose. | |||||||
> > | as well as OOGL format. Added option '-v' for this purpose. | |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Removed artificial limit on the number of maximal discs that can be extracted from each cross-section. | ||||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.2 - April 2000 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Deleted: | ||||||||
< < |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.1 - August 1999 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Deleted: | ||||||||
< < |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||
Version 1.0 | ||||||||
Deleted: | ||||||||
< < | ||||||||
Deleted: | ||||||||
< < |
| |||||||
Changed: | ||||||||
< < | ||||||||
> > |
| |||||||