The Xray module performs fast orthographic 3D volume visualization on byte data in five modes.
Name | Type | Description | |
in_field | field | uniform byte field containing input data | |
Name | Type | Description | UI Control |
axis | int | axis to be used for voxel stack. | Radio Buttons |
mode | int | operation to be performed. | Radio Buttons |
Name | Type | Description | |
out_fld | field | uniform 2D integer field containing output data | |
out_obj | GDobject | directly renderable output data | |
The Xray user macro does simple, orthogonal volume visualization on 3D uniform byte fields. It outputs a 2D integer field which can be colorized and displayed as an image. In essence the 'Xray' volume visualization technique is quite simple. For a given direction the module looks at the row of voxels "behind" each screen pixel and depending on the selected operation the module creates a new pixel based on those voxels. The low-level module is written in C++, and accesses simple arrays for input & output. It is classified as a filter, since it takes a 3D data array as input and produces another 2D projected data array. This is a direct port of the AVS5 X_ray module.
The volume visualization processing options are:
The Xray macro implements a pretty fast volume visualization technique. It should be possible to easily extend it to cover other cases.
in_field
Any 3D structured volume with scalar byte data. The input data must have three dimensions. Any coordinates present in the field are ignored.
axis (Radio buttons)
This parameter describes which direction should be used as the source for the voxel stack. The choices are I, J, and K.
By default the K direction is used.
mode (Radio buttons)
This parameter specifies which operation should be performed on the voxel stack. The choices are SUM, MEAN, MEDIAN, MIN and MAX. The purpose of each of these operations is described above. The default operation is SUM.
It should be noted that MEDIAN is rather slow to compute and produces results of limited utility. Typically SUM and MEAN will produce the same visual results as normally AVS/Express will normalize the colormap to the data. However MEAN takes a little longer to compute. MIN will not typically be very useful for medical data. Overall MEAN and MAX will tend to be most useful.
out_fld
The output field containing field data as a 2D uniform mesh projected along one of the axes. The generated node data is of integer type.
out_obj
The GDobject version of the output, suitable for direct connection to the viewer. A 2D viewer is recommended.
The low-level module takes simple byte and integer arrays as input and outputs a simple integer array. It can be combined with other systems if a low-level custom solution is needed.
The Xray_Func macro contains all the components necessary to perform full AVS/Express field volume visualization. However it does not provide a user interface. Most custom solutions should use this macro. The user interface for the project is contained in the XrayUI macro. This macro can be replaced or modified without affecting the functional operation of the module.
The xray user macro combines the Xray_Func functional macro with the XrayUI user interface macro. This is the primary module exposed in the IAC library filter page. The interface between the high level macros is contained in the XrayParams parameter block.
One example application is provided called XrayEg. This application demonstrates how the Xray module can be used to perform a simple volume visualization of the the Lobster data set. As well as the Xray module a crop module is also included in the visualization pipeline. This module can be used to adjust which parts of the data set are visualized and the length of the voxel stacks being analysed.
iac_proj/xray/xraymods.v contains the V definitions of the XrayCore module and the XrayParams parameter block.
iac_proj/xray/xraymacs.v contains the V definitions of the XrayUI UI macro, the Xray_Func functional macro, the xray user macro and the XrayEg example application.
The low-level XrayMods library containing the low-level module XrayCore does not specify a process. By default the express process will be used.
Sabreen Vig, Larry Gelberg, Ian Curington Advanced Visual Systems, Inc.
International AVS Centre Manchester Visualization Centre Manchester Computing University of Manchester Oxford Road Manchester United Kingdom M13 9PL
AVS5 x_ray module.