Appendix E : 3DVIEWNIX 1.1 Programs That Run Without User Interface


This appendix lists the programs in 3DVIEWNIX 1.1 that run without the user interface (i.e. from the command line).
E.1 ndvoi

Description : Obtain a subscene from IM0/BIM limited to a intensity range.
Usage : ndvoi mode offx offy new_width new_height min max [min_x3 max_x3] [min_x4 max_x4]

Optionals - ndvoi takes a IM0 or BIM file and allows you to create a new scene with the following changes. (a) select a new region of interest for a slice (b) select a subset of slices and volumes through the data (c) take a intensity region and scale it to 256 values.

E.2 gaussian2d

Description : Gaussian 2D filter for IM0/BIM.
Usage : gaussian2d mode sigma

gaussian2d takes a IM0 file or a BIM file and creates a new file which is a 2D gaussian convolution of the original file. The convolution is done on a 3x3 region.

E.3 gaussian3d

Description : Gaussian 3D filter for IM0/BIM.
Usage : gaussian3d input output mode sigma

gaussian3d takes a IM0 file or a BIM file and creates a new file which is a 3D gaussian convolution of the original file. The convolution is done on a 3x3x3 region.

E.4 gradient

Description : Compute 3D gradients for IM0/BIM files.
Usage : gradient input output mode

gradient takes a IM0 file or a BIM file and creates a new file which is a 2D gradient image of the original slice.

E.5 sobel

Description : Sobel filter a IM0/BIM file.
Usage : sobel input output mode

sobel takes a IM0 file or a BIM file and creates a new file which is a sobel gradient image of the original slice.

E.6 toboggan

Description : Toboggan filter a IM0/BIM file.
Usage : toboggan input output mode

toboggan takes a IM0 file or a BIM file and creates a new file which is a tobaggan filtered version of the original.

E.7 ndinterpolate

Description : Interpoate IM0/BIM (linear/cubic/NearestNeighbor/ Shapebased).
Usage : ndinterpolate input output mode p1 p2 p3 [p4] mb m1 m2 m3 [m4 Vi Vf] [I1 F1 ... In Fn]

ndinterpolate interpolates IM0 or BIM data as specified by the arguments.

E.8 shape_interp_cb

Description : Fast shabe based interpolation for obtaing 3d cubic voxels.
Usage : shape_interp_cb input output mode

shape_interp_cb interpolates a BIM data set and create a new set with cubic voxels. The size of the new voxels are the same as the pixel width. [7] can be used instead but this is much faster.

E.9 ndthreshold

Description : Threshold a IM0 between lower and a upper threshold values.
Usage : ndthreshold input output mode min1 max1 [min2 max2 ... minn maxn]

optional- ndthreshold takes in an intensity range (or multiple ranges) and thresholds a IM0 data set such that within this range the value is one and outsize the range it is zero. Both min and max are included in the range.

E.10 B2dfeatures

Description : Given a region on a 2D scatter plot obtain binary from 2 IM0 files.
Usage : B2dfeatures input1 input2 max1 max2 IN_plot output mode

B2dfeatures takes 2 IM0 input files and a BIM file containing a slice which represents the scatter plot of 2feature segmentation and segments the data accordingly.

E.11 track_all

Description : Track all connected components of a IM0/BIM and obtain BS1/BS0 files.
Usage : track_all pix_size min_thresh max_thresh normal merge_flag mode [pv_file]

optional -
  • format of pv_file -
    num_pv
    description_pv1 description_pv2 .. .. ..
    volumes
    pv1_vol1 pv2_vol1 .. ..
    pv1_vol2 pv2_vol2 .. ..
    : :

    track_all takes a IM0 or BIM file and generates a BS0,BS1 or BSI file. that falls within the threshold interval. track_all always generates cubic faces and the size of the face is specified relative to the size of the pixel width of the input data set. ( 2 means the face of a surface is twice the width of the input pixel width or half the resolution ). One can merge this set with a set that already exists if they are consistant. The parameter vector of the structure can be specified in a seperate file. If the data set is 4D multiple parameter values will need to be specified (one for each volume).

    E.12 track_3d

    Description : Given stating points track connected components and obtain BS1/BS0 files.
    Usage : track_3d pix_size min_thresh max_thresh volume normal merge_flag bg_flag [pv_vector_file]

    • IMAGE_file - This can be a binary or gray scene
    • BSn_file - This can be BS1 or BS0
    • pix_size - In units of the input pixel width.
    • min_thresh max_thresh - Has to be between or equal to these values
    • volume - if 4D () the volume number (>=0) if 3D 0.
    • pt_file - file containig starting points
    • format: num_points
      z1 y1 x1
      z2 y2 x2
      : : :
    • normal - Can be 8 or 26
    • merge_flag - Merge new stucture to the one specified
    • bg_flag - 1 = running in the background
      0 = running in the foreground
    optional -
    • pv_file - file containing the description of param vectors
    format: num_pv
    description_pv1 description_pv2 .. .. ..
    pv1 pv2 .. ..

    E.13 to_normal

    Description : Compute normals for a BS1/BS0 file given a gray scene.
    Usage : to_normal struct_num volume_num neighbors bg_flag

    • shell_file - This can be BS1 or BS0
    • struct_num - structure number (This is numbered 1 through num_structures)
    • IM0_file - IM0 file to compute the normal from.
    • volume_num - The volume number of the IM0 file (first volume is 0) and if 3D give zero.
    • neighbors - number of neighbors used for normal computation. Valid values are 8 or 26.
    • bg_flag - 1 = running in the background 0 = running in the foreground
    to_normal takes a shell file and a scene and replaces the normals of the shell with onces computed from the scene for the object specified.

    E.14 merge_surface

    Description : Combine 2 BS1/BS0 structure systems into one system.
    Usage : merge_surface bg_flag

    • shell_file1 - input shell file 1 (BS1 or BS0).
    • shell_file2 - input shell file 2 (should have the same ext as 1).
    • output_file - output shell file (should have the same ext as 1).
    • bg_flag - 1 = running in the background 0 = running in the foreground
    merge_surface take two shell files of the same type and merges them into one shell file. All shell files cannot be merged with another. They should have consistant parameter fields. (slice spacing, pixel size etc.)

    E.15 BS1_TO_BS0

    Description : Convert a BS1 system to a BS0 system.
    Usage : BS1_TO_BS0 bg_flag

    • BS1_file - BS1 input file.
    • BS0_file - BS0 output file.
    • bg_flag - 1 = running in the background 0 = running in the foreground
    BS1_TO_BS0 converts a BS1 shell to a BS0 shell. Note the programs that use BS0 files also require a BSI file. If you cannot create once from a IM0 file you can link the BS0 file to be the BSI file. But this will be slow.

    E.16 BS0_TO_BS1

    Description : Convert a BS0 system to a BS1 system.
    Usage : BS0_TO_BS1 bg_flag

    • BS0_file - BS0 input file.
    • BS1_file - BS1 output file.
    • bg_flag - 1 = running in the background 0 = running in the foreground
    BS0_TO_BS1 converts a BS0 shell to a BS1 shell. The size of the shell in going to increase as each voxel can have multiple faces. All the faces would get the same normal as the voxel it falls on.

    E.17 PLN_TO_BS0

    Description : Convert a BS1 plan to a BS0 plan.
    Usage : PLN_TO_BS0 bg_flag

    • PLN_file - PLN input file of BS1 type.
    • BS0_file - PLN output file of BS0 type.
    • bg_flag - 1 = running in the background 0 = running in the foreground
    PLN_TO_BS0 converts a BS1 plan file to a BS0 plan file. This would also force the BS1 file contained in the input plan file to be converted to a BS0 file.

    E.18 PLN_TO_BS1

    Description : Convert a BS0 plan to a BS1 plan.
    Usage : PLN_TO_BS1 bg_flag

    • PLN_file - PLN input file of BS0 type.
    • BS0_file - PLN output file of BS1 type.
    • bg_flag - 1 = running in the background 0 = running in the foreground
    PLN_TO_BS1 converts a BS0 plan file to a BS1 plan file. This would also force the BS0 file contained in the input plan file to be converted to a BS1 file.

    E.19 BS0_TO_BIM

    Description : Get binary region inside BS0 surface.
    Usage : BS0_TO_BIM struct_num bg_flag

    • BS0_file - BS0 input file name
    • struct_num - object number to convert ( starts at 0)
    • BIM_file - BIM output file name
    • bg_flag - 1 = running in the background 0 = running in the foreground
    BS0_TO_BIM creates a binary scene that has 1 for inside of the object specified and 0 for the outside from a input BS0 file.

    E.20 BS1_TO_BIM

    Description : Get binary region inside BS1 surface.
    Usage : BS1_TO_BIM struct_num bg_flag

    • BS1_file - BS1 input file name
    • struct_num - object number to convert ( starts at 0)
    • BIM_file - BIM output file name
    • bg_flag - 1 = running in the background 0 = running in the foreground
    BS1_TO_BIM creates a binary scene that has 1 for inside of the object specified and 0 for the outside from a input BS1 file.

    E.21 reslice_proc

    Description : Reslice a IM0/BIM dataset along a plane.
    Usage : reslice_proc infile outfile origin end_x end_y end_z plane_size out_slices bg_flag

    • infile - input scene (should have equal slice spacing)
    • outfile - name of the reslice scene to write to
    • origin - x y z in pixels and slices of the input scene
    • end_x - location of the last pixel on the output x axis relative to the original scene
    • end_y - same as above for the y-axis
    • end_z - same as above for the z_axis
    • plane_size - size of the slice
    • out_slices - output slices
    reslice_proc takes a input scene and reslices it parallel to a given plane and creates a volume of slices. The plane is defined defined by origin,end_x,end_y and the end of the volume is define as being from origin to end_z. Each of these (origin,end_x,end_y,_end_z) are actually triplets that are just seperated by spaces. They are defined in pixel units and slice units and they can be floating point values.

    reslice_proc assumes the output scene is always square. So make sure you define a square plane otherwise the output scene will be warped.

    E.22 shell

    Description : performs one-feature classification to create a Shell0 structure.
    Usage : shell input_file max_gradient min_opacity max_opacity lo2 hi1 lo3 o4 hi3 op1 op2 op3 op4 first_slice last_slice pixel_size slice_thickness nbits output_file

    • input_file - the name of the input file. Must be a scalar IM0 file with 8 or 16 bits per pixel and be 3 or 4 dimensional; if 4 dimensional, only the first volume will be classified.
    • max_gradient - the value of the 3-D gradient of the input scene in intensity units per millimeter representing the maximum surface likelihood. Surface likelihood values are stored in 8 bits (256 levels). If too high a value is chosen for max_gradient, most of the shell elements will have likelihood values of 1, 2, or 3. If too low a value is chosen, most of the shell elements will have likelihood value 255. A good distribution of likelihood values depends on a lucky choice of this parameter somewhere between these two extremes.
    • min_opacity - the opacity value between 0 and 1 below which a voxel will not be stored as a shell element. Opacity value for voxel is the weighted sum of the opacities of materials in the voxel.
    • max_opacity - the opacity value between 0 and 1 that, if a voxel is surrounded by voxels exceeding this opacity, it will not be stored as a shell element.
    • lo2 - the low fuction value for material 2, which is also the mid-high value for material 1.
    • hi1 - the high function value for material 1, which is also the mid-low value for material 2.
    • lo3 - the low fuction value for material 3, which is also the mid-high value for material 2.
    • hi2 - the high function value for material 2, which is also the mid-low value for material 3.
    • lo4 - the low fuction value for material 4, which is also the mid-high value for material 3.
    • hi3 - the high function value for material 3, which is also the mid-low value for material 4.
    • op1 - the opacity value between 0 and 1 for material 1 (normally 0).
    • op2 - the opacity value between 0 and 1 for material 2.
    • op3 - the opacity value between 0 and 1 for material 3.
    • op4 - the opacity value between 0 and 1 for material 4.
    • first_slice - the first slice in the input volume to be used, starting at 1.
    • last_slice - the last slice in the input volume to be used. A number larger than the number of slices in the volume can be used to classify the whole volume.
    • pixel_size - the sampling in millimeters in the Y1 and Y2 directions. 0 or a negative value can be used to specify no interpolation.
    • slice_thickness - the sampling in millimeters in the Y3 direction. 0 can be used to specify cubic sampling; a negative value can be used to specify no interpolation.
    • nbits - 3 or 4 bits per component in the normal code (normally 4).
    • output_file - the name of the output file.
    For 3DVIEWNIX shell must be run twice, once to create the main SH0 file and once to create the icon, which must have the same name except the last character is 'I' instead of '0'.

    E.23 shel3

    Description : Performs two-feature classification to create a Shell0 structure.
    Usage : shel3 input_file min_density max_density density_cliff min_gradient max_gradient gradient_cliff min_opacity max_opacity pixel_size slice_thickness first_slice last_slice nbits output_file

    • input_file - the name of the input file. Must be a scalar IM0 file with 8 or 16 bits per pixel and be 3 or 4 dimensional; if 4 dimensional, only the first volume will be classified.
    • min_density - the intensity value below which the classification function is 0.
    • max_density - the intensity value at which the intensity factor of the classification function becomes 1.
    • density_cliff - the value between 0 and 1 of the intensity factor of the classification function at min_density.
    • min_gradient - the gradient value below which the classification function is 0.
    • max_gradient - the gradient value at which the gradient factor of the classification function becomes 1.
    • gradient_cliff - the value between 0 and 1 of the gradient factor of the classification function at min_gradient.
    • min_opacity - the opacity value between 0 and 1 below which a voxel will not be stored as a shell element. Opacity value for a voxel is the product of intensity and gradient factors of the classification function.
    • max_opacity - the opacity value between 0 and 1 that, if a voxel is surrounded by voxels exceeding this opacity, it will not be stored as a shell element.
    • pixel_size - the sampling in millimeters in the Y1 and Y2 directions. 0 or a negative value can be used to specify no interpolation.
    • slice_thickness - the sampling in millimeters in the Y3 direction. 0 can be used to specify cubic sampling; a negative value can be used to specify no interpolation.
    • first_slice - the first slice in the input volume to be used, starting at 1.
    • last_slice - the last slice in the input volume to be used. A number larger than the number of slices in the volume can be used to classify the whole volume.
    • nbits - 3 or 4 bits per component in the normal code (normally 4).
    • output_file - the name of the output file.
    The two features used for classification are the intesity and the 3-D gradient of intensity from the input volume. For 3DVIEWNIX shel3 must be run twice, once to create the main SH0 file and once to create the icon, which must have the same name except the last character is 'I' instead of '0'.

    E.24 mask2grey

    Description : Performs masking operation on an nD grey scene.
    Usage : mask2grey mask output object mode [name1 name2 ... nameN]

  • mask - complete name of the mask file.
  • output - name of the output file (without IM0 termination).
  • object - index of the object being saved (0=first; 1=second;...; -1=all objects).
  • mode - mode of operation (0=foreground, 1=background).
  • Optionals - names for each one of the generated scenes. If 'object= -1', the user can specify the individual file name for each object. mask2grey performs masking operation on an nD grey scene represented by a .IM0 format file. It creates one file for each of the objects represented in the mask file (object_mask.TMP). Each slice is loaded and masked individually based on the mask file. The output is a nD grey scene also represented by a .IM0 format file.

    E.25 mask2bin

    Description : Performs masking operation on an nD grey scene.
    Usage : mask2bin mask output object mode [name1 name2 ... nameN]

    • mask - complete name of the mask file.
    • output - name of the output file (without BIM termination).
    • object - index of the object being saved (0=first; 1=second;...; -1=all objects).
    • mode - mode of operation (0=foreground, 1=background).
    • Optionals - names for each one of the generated scenes. If 'object= -1', the user can specify the individual file name for each object.
    mask2bin performs masking operation on an nD grey scene represented by a .IM0 format file. It creates one file for each of the objects represented in the mask file (object_mask.TMP). Each slice is loaded and masked individually based on the mask file. The output is a nD binary scene represented by a .BIM format file.

    E.26 job_done

    Description : Alerts the user that a background job has finished.
    Usage : job_done job_name [-abort]

    • job_name - name of the job that is completed.
    optional :
    • abort - whether to abort
    job_done alerts the user that a background job has finished. Pass the second argument only if the job failed. If the DISPLAY environment variable is set, the message will appear in its own top-level window; otherwise it will appear in the standard error stream. Run this program when calling VDeleteBackgroundProcessInformation.

    E.27 create_menu

    Description : creates MENU_TREE file from SIMPLE_MENU file.
    Usage : create_menu SIMPLE_MENU MENU_TREE

    create_menu should be run in the FILES subdirectory of the 3DVIEWNIX system directory to update the file MENU_TREE after any changes to SIMPLE_MENU.