Xray

Synopsis

The Xray module performs fast orthographic 3D volume visualization on byte data in five modes.

Input Ports

Name Type Description

in_field field uniform byte field containing input data

Parameters

Name Type Description UI Control

axis int axis to be used for voxel stack. Radio Buttons
mode int operation to be performed. Radio Buttons

Output Ports

Name Type Description

out_fld field uniform 2D integer field containing output data
out_obj GDobject directly renderable output data

Description

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.

Inputs

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.

Parameters

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.

Outputs

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.

Utility Macros

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.

Example

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.

Files

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.

Other Notes

The low-level XrayMods library containing the low-level module XrayCore does not specify a process. By default the express process will be used.

Authors

Sabreen Vig, Larry Gelberg, Ian Curington
Advanced Visual Systems, Inc.

Contact

International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL

See Also

AVS5 x_ray module.