Stradwin files

Stradview can load data from various DICOM and other image formats. However, it saves any additional data in the Stradwin file format, either as data or settings files, or in a configuration file.

Data files are used to store all sorts of parameters, as well as position, contour and landmark data, and can also be used to store image data. With most DICOM data and image sequences, the only file Stradview creates is a ".sw" file containing textual information: the original data is left un-altered but referenced within the Stradview file. For some older Stradwin formats, the binary data is stored in an additional ".sxi" file. In either case, when you load up a data set in Stradview, the ".sw" file is loaded first to establish the details of the data set, and the original DICOM or image file set (or ".sxi" file) is then loaded automatically. Since the ".sw" file contains unformatted text, it can be viewed and/or edited in any text editor.

Settings files, are text files, with extension ".ini", that can contain various sub-sets (according to the 'group') of parameters related to the data, analysis and visualisation settings. Settings files contain information that relates to the visualisation or processing of the data, but not to the data itself. Hence these files can be loaded when there is already an open data set, for instance to set up a particular analysis, or to retrieve a particular viewpoint, reslice orientation or colour settings for a particular visualisation.

The configuration file, "stradview.ini" is used to store configuration parameters. This is information which is not specific to any given data, but more to do with the overall performance and visualisation quality. This file is automatically updated whenever you change a control which is stored in this file, so that each time you start Stradview, such controls will be set to the values from the previous session. The configuration file also contains simple unformatted text, in the same format as the other text files.

Much of the information in settings and configuration files is also stored in each textual ".sw" data file, so that the data contains a historical record of all the Stradview parameters at the time it was recorded. When you load a data file, Stradview temporarily sets all the controls to whatever they were when you saved the data. These controls return to the previous settings as soon as the data file is closed unless you specifically change a control while the data is loaded, in which case it will then stay at the value you changed it to after closing the data file.

File formats

The data, settings and configuration files have the same format, where information is stored in single line parameter-value pairs, so for instance the line:

RES_BUF_FRAMES 100
indicates that the RES_BUF_FRAME parameter has the value "100". A few parameters can occur multiple times, for instance once per frame of data, or once per drawn contour.

The exception is the ".sxi" data file, which is a binary file containing image data only. For scan-converted data, this contains a single 8-bit (unsigned char) value per display pixel, and is ordered such that the pixel at row r, column c and frame f is at location:

f*RES_BUF_WIDTH*RES_BUF_HEIGHT + r*RES_BUF_WIDTH + c
Hence the total size of a scan-converted ".sxi" data file is given by RES_BUF_FRAMES*RES_BUF_WIDTH*RES_BUF_HEIGHT bytes.

Note that Stradview can not load RF data: for this you need to use Stradwin.

Stradwin coordinate systems

Stradview always stores the position and orientation separately for each frame in a data set. When the orientations from each frame are represented as rotation matrices, they are always 'proper', i.e the determinant is one. If the data is a regular array, all these orientations will be the same, but the implied z-direction may or may not correspond to the direction in which the frame number increases. This is handled internally by using a negative value for the scaling parameter in the z-direction, whereas the x- and y-scales are always positive. Most DICOM data will end up needing such a negative z-scale.

Internally, the 3D locations for each frame are defined from the top-left corner (in x,y) of the first pixel, but at the centre (in z) of the slice. This is the case for the frame positions following the "IM" token and the 2D contour coordinates following the "CONT" token. So the centre of the first pixel in each case is at 0.5*(res_xscale, res_yscale). However, most medical image formats define the origin at the centre of the first pixel. Up to and including Stradview version 7.3 this was ignored, resulting in a potential half pixel offset between coordinate systems. Newer versions interpret this correctly, and automatically re-adjust for the half pixel offset when loading an older stradwin file. However, if you exported a surface or a resliced data set from an older Stradview version and then try to load that in again with the new version, you may notice a half-pixel offset between this and the data, since it is not possible to retrospectively correct previously exported surfaces or resliced data. Setting RES_CORRECT_HALF_PIXEL_OFFSET to false in the configuration file will prevent Stradview from correcting older files and hence allow correct correspondence with older surfaces generated from these files.

All rotations in Stradwin ".sw" data files are expressed in Euler angles. The particular convention used is Tait-Bryan angles, ZYX ordering, with azimuth = yaw = alpha, elevation = pitch = beta and roll = gamma. Internally, Stradview converts Euler angles to homogeneous transformation matrices before manipulation. The classes matrix16d and vertex3d for dealing with such matrices are contained in 'translate.h' and 'translate.cpp'. Using these classes, the following code snippet uses Stradwin parameters (as described below) to convert a pixel location in a single frame to the data coordinate system:

  // Create matrices for
  //  - position sensor calibration (cal), if required
  //  - frame location in position sensor coordinates (frame)
  matrix16d cal(res_xtrans, res_ytrans, res_ztrans, res_azimuth, res_elevation, res_roll);
  matrix16d frame(im_x, im_y, im_z, im_azimuth, im_elevation, im_roll);

  // Calculate vertices for
  //  - point location relative to the frame (pixels)
  //  - point location relative to the position sensing device (pos), if required
  //  - point location in position sensor base coordinates (world)
  vertex3d pixels, pos, world;

  pixels.x = 100;  // pixels from top left in horizontal direction
  pixels.y = 50;   // pixels from top left in vertical direction
  pos = cal * pixels.scale(res_xscale, res_yscale);
  world = frame * pos;

Note that, for most DICOM and image data, the "cal" matrix above is not used, and would be set to the identity matrix.

Single line parameters saved in data, settings or configuration files

The following table lists all the single line parameters that are stored in the data file, and possibly also the settings and configuration files. For data files, the first nine parameters are always located before the RES_END_HEADER token: Stradview needs to load these first in order to correctly interpret the remaining parameters. Apart from this restriction, the parameters can appear in any order in the file. The table also shows how some of the parameters are collected together into "groups": these are used to warn the user of unsaved parameters when closing a file or quitting Stradview. Groups are also used to control what gets saved when creating a new settings file.

Token Data file Settings file Config file Type Default Group Description
# text - - Comment token - this can be followed by any textual comment.
RES_BUF_FRAMES long 0 DATA The number of frames of recorded data.
RES_BUF_WIDTH long 512 IMAGE The width of scan-converted data, in pixels.
RES_BUF_HEIGHT long 512 IMAGE The height of scan-converted data, in pixels.
RES_POS_REC bool true POS Whether we have locational data with each image.
RES_BUF_RF bool false IMAGE Whether the recorded data is RF or scan-converted. Note that RF data can not be loaded by Stradview.
RES_BUF_DICOM bool false DICOM Whether this header file refers to native DICOM data or image sequence files (true) or Stradwin ".sxi" files (false).
RES_DICOM_FRAME_LIST longs - DICOM An ordered list of values indicating which DICOM or image files or frames are included in this Stradwin file. A value of zero indicates the first DICOM/image file found in this directory.
RES_END_HEADER - - - A special token signifying the end of the header section.
RES_VERSION text V - The Stradwin version which wrote this file. The default value V is the current version number.
RES_INVERT_BSCAN bool false IMAGE Whether the probe surface is at the top (false) or bottom (true) of the displayed image.
RES_BUF_DOPPLER bool false IMAGE Whether the data is grey-scale (B-scan) or colour (Doppler).
RES_CORRECTED_PRESSURE bool false IMAGE Whether the image data has been corrected for probe pressure using an image-based algorithm.
RES_CORRECTED_POS bool false DATA Whether the image data has been corrected for small positional errors using an image-based algorithm.
RES_MASKED_DATA long 0 IMAGE 1 if the image data has been masked (non-data areas set to zero and ignored in visualisations), 0 otherwise.
RES_XTRANS double 0 POS The x (lateral) translation (in cm) from the top left corner of the image to the position sensor coordinate system.
RES_YTRANS double 0 POS The y (axial) translation (in cm) from the top left corner of the image to the position sensor coordinate system.
RES_ZTRANS double 0 POS The z (elevational) translation (in cm) from the top left corner of the image to the position sensor coordinate system.
RES_AZIMUTH double 0 POS The Euler azimuth (in degrees from -180 to 180) from the top left corner of the image to the position sensor coordinate system.
RES_ELEVATION double 0 POS The Euler elevation (in degrees from -90 to 90) from the top left corner of the image to the position sensor coordinate system.
RES_ROLL double 0 POS The Euler roll (in degrees from -90 to 90) from the top left corner of the image to the position sensor coordinate system.
RES_XSCALE double 0.01 POS The lateral (x) scale of the scan-converted image, in cm per pixel.
RES_YSCALE double 0.01 POS The axial (y) scale of the scan-converted image, in cm per pixel.
RES_POS_MANUAL bool false POS Whether the positions have been manually entered.
RES_POS_MANUAL_TRAN long 0 POS The axis (or 0 for no translation) for manually entered positions.
RES_POS_MANUAL_SPAN double 0 POS The total translation distance in mm for manually entered positions.
RES_POS_MANUAL_ROT long 0 POS The axis (or 0 for no rotation) for manually entered rotations.
RES_POS_MANUAL_ANGLE long 0 POS The total rotation angle in degrees for manually entered rotations.
RES_POS_MANUAL_RADIUS long 0 POS The offset radius in mm about which the rotations occurs for manually entered rotations.
RES_DICOM_WIN_CENTRE double 1024 DICOM / DISPLAY The window centre for conversion of data to display brightness, usually in Hounsfield Units. The default value is whatever is stored in the corresponding DICOM files.
RES_DICOM_WIN_WIDTH double 2048 DICOM / DISPLAY The window width for conversion of data to display brightness, usually in Hounsfield Units. The default value is whatever is stored in the corresponding DICOM files.
RES_DICOM_FILTER long 0 DICOM / DISPLAY Applies a Gaussian filter of extent (2*RES_DICOM_FILTER+1) to each frame of the raw data before windowing, to remove noise. '0' turns this filter off.
RES_DICOM_FILTER_Z long 0 DICOM / DISPLAY Applies a Gaussian filter of extent (2*RES_DICOM_FILTER_Z+1) across frames of the raw data before windowing, to remove noise. '0' turns this filter off.
RES_DICOM_UNITS text ?? DICOM Notes the units of measurement after conversion using RES_DICOM_HUM and RES_DICOM_HUB. This can only be changed if it is not specified in the image data. '??' stands for 'un-known', and 'HU' and 'GY' are both specifically recognised, otherwise it can take any value.
RES_DICOM_HUM double 1.0 DICOM Part of the conversion between raw data values and (usually) Hounsfield Units (HU), where HU = (raw * DICOM_HUM) + DICOM_HUB.
RES_DICOM_HUB double 0.0 DICOM Part of the conversion between raw data values and (usually) Hounsfield Units (HU), where HU = (raw * DICOM_HUM) + DICOM_HUB.
RES_DICOM_BMD_PHANTOM text No DICOM The phantom which was detected in CT data and used to convert Hounsfield Units to density, or 'No' if this has not been done.
RES_DICOM_BMD_SCALE double 1.0 DICOM Part of the conversion between Hounsfield Units (HU) and density (mg/cm3), where density = (HU-BMD_OFFSET)/BMD_SCALE.
RES_DICOM_BMD_OFFSET double 0.0 DICOM Part of the conversion between Hounsfield Units (HU) and density (mg/cm3), where density = (HU-BMD_OFFSET)/BMD_SCALE.
RES_BUF_CURRENT_FRAME long 0 DISPLAY The frame of the data set which is currently being displayed.
RES_DISPLAY_PIXELS bool false DISPLAY If set to true, turns off image interpolation in all windows, so that the actual data pixels are visible when the data is sufficiently zoomed.
RES_DISPLAY_COG bool true DISPLAY If set to true, display centres-of-gravity of each surface in the 3D window, and in other windows when they are close enough.
RES_SEE_OUTLINES long 1 DISPLAY Whether frame outlines are visible in the 3D windows, and intersections in the other windows. 0 - never visible, 1 - visible, just current frame, 2 - visible, all frames.
RES_SEE_MARK_LOCKED long 0 DISPLAY Whether landmarks are permanently visible in all windows. 1 - always visible, 2 - never visible, 0 - automatic.
RES_SEE_DRAW_LOCKED long 0 DISPLAY Whether contours and objects are permanently visible in all windows. 1 - always visible, 2 - never visible, 0 - automatic.
RES_OUTLINE_VIEWX_X double 1.0 DISPLAY The x-component of the x-direction of the 3D visualisation viewpoint.
RES_OUTLINE_VIEWX_Y double 0.0 DISPLAY The y-component of the x-direction of the 3D visualisation viewpoint.
RES_OUTLINE_VIEWX_Z double 0.0 DISPLAY The z-component of the x-direction of the 3D visualisation viewpoint.
RES_OUTLINE_VIEWZ_X double 0.0 DISPLAY The x-component of the z-direction of the 3D visualisation viewpoint.
RES_OUTLINE_VIEWZ_Y double 0.0 DISPLAY The y-component of the z-direction of the 3D visualisation viewpoint.
RES_OUTLINE_VIEWZ_Z double 1.0 DISPLAY The z-component of the z-direction of the 3D visualisation viewpoint.
RES_OUTLINE_VIEW_ANGLE long 40 DISPLAY Whether to show the 3D visualisation as orthographic (0) or perspective (>0), in which case this gives the viewing angle in degrees.
RES_CAMERA_DISTANCE double 1.0 DISPLAY How close the camera is to the current view centre, with 0 very close, and 1 (the default) outside the data set.
RES_OUTLINE_ZOOM double 1.0 DISPLAY The magnification of the data in the 3D visualisation.
RES_REVIEW_ZOOM double 1.0 DISPLAY The magnification of the data in the 2D review window.
RES_CENTRE_ZOOM double 1.0 DISPLAY The magnification of the data in the reslice or left-hand orthographic visualisation.
RES_CORNER_ZOOM double 1.0 DISPLAY The magnification of the data in the right-hand orthographic visualisation.
RES_LOCK_ZOOM double false DISPLAY Whether to keep the magnification the same between all windows, and not change it when the windows re-size.
RES_RESLICE_OPACITY double 0.5 DISPLAY The opacity with which the reslices and review data displayed in the 3D window. 1.0=opaque, 0.0=invisible.
RES_BACKGROUND text #808080 GRAPHICS The colour used for background (non-data) in the data windows, as three hexadecimal RGB values.
RES_BACKGROUND_CONST bool false GRAPHICS Whether the background (non-data) in the 3D window is constant or shaded. Only affects displays if your driver supports at least OpenGL 3.0.
RES_SHADER long 2 GRAPHICS The shader used to draw surfaces in the 3D window, as an index into the 'graphics shader' selection box. Only affects displays if your driver supports at least OpenGL 3.0.
RES_TRANSLUCENT_LAYERS long 6 GRAPHICS The number of overlapping translucent layers to display for surfaces in the 3D window. Setting this to zero defaults to a 'fake' translucency which was the default before version 7.0. Only affects displays if your driver supports at least OpenGL 3.0.
RES_LIGHTING_AMBIENT double 0.30 GRAPHICS The amount of ambient light in the 3D window, in a range from 0.0 to 1.0. The radiant lighting is decreased proportionally as this value is increased.
RES_LIGHTING_FRONT_SIDE double 0.75 GRAPHICS The relative importance of the side and the front light in the 3D window, in a range from 0.0 (front light only) to 1.0 (side light only). Since shadowing is only generated by the side light, this also controls the depth of the shadows.
RES_LIGHTING_LEFT_RIGHT double 0.25 GRAPHICS The left-right rotation of the side light in the 3D window, in a range from -1.0 (from behind) to -0.5 (from the left) to 0.0 (from front) to 0.5 (from the right) to 1.0 (from behind, same as -1.0). Since shadowing is generated by the side light, this also controls the direction of the shadows.
RES_LIGHTING_UP_DOWN double -0.5 GRAPHICS The up-down location of the side light in the 3D window, in a range from -1.0 (directly below) to 1.0 (directly above). Since shadowing is generated by the side light, this also controls the direction of the shadows.
RES_LIGHTING_NEAR_FAR double 1.0 GRAPHICS The near-far location of the side light in the 3D window, in a range from -1.0 (close to the data) to 1.0 (infinitely distant). This is also used to control the penetration distance of the light when using point lights fixed at a landmark.
RES_LIGHTING_LANDMARK text ?? GRAPHICS The name of the landmark at which to fix the location of the side light in the 3D window. This results in omnidirectional light over the 3D window.
RES_AMBIENT_LIGHT_WARMTH double 0.0 GRAPHICS Sets the colour of the ambient light in the 3D window. Zero (the default) is white light, -1.0 is cold (blue-ish or night-time) and 1.0 is warm (yellow/red or candle).
RES_FRONT_LIGHT_WARMTH double 0.0 GRAPHICS Sets the colour of the front light in the 3D window. Zero (the default) is white light, -1.0 is cold (blue-ish or night-time) and 1.0 is warm (yellow/red or candle).
RES_SIDE_LIGHT_WARMTH double 0.0 GRAPHICS Sets the colour of the side (mobile) light in the 3D window. Zero (the default) is white light, -1.0 is cold (blue-ish or night-time) and 1.0 is warm (yellow/red or candle).
RES_OCCLUSION_RANGE long 5 GRAPHICS The extent of ambient scatter or occlusion modelling in the 3D window. Only affects displays if your driver supports at least OpenGL 3.0.
RES_RADIANT_SHADOWS bool true GRAPHICS Whether light propogation is included in the 3D window, which will create shadows from the side light. Only affects displays if your driver supports at least OpenGL 3.0.
RES_AMBIENT_SCATTER bool true GRAPHICS Whether ambient scatter is modelled in the 3D window. For surfaces this affects ambient occlusion and for volumes it controls secondary scatter from ambient light. Only affects displays if your driver supports at least OpenGL 3.0.
RES_FOCUS_RANGE double 0.0 GRAPHICS Range of focus in 3D visualisation. 0.0 implies no focus simulation (everything in focus), 1.0 is the minimum focal range. Only affects displays if your driver supports at least OpenGL 3.0.
RES_FOCUS_DEPTH double 0.5 GRAPHICS Depth of focus in 3D visualisation. 0.0 focuses at the nearest point, 1.0 at the furthest, 1.0 is the minimum focal range. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_QUALITY long 5 VOLUME The quality used for generating the volume rendering in the 3D window, from 0 (lowest) to 7 (highest), corresponding to the selection in the quality list. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_TRANSLUCENCY long 50 VOLUME The overall translucenct for volume rendering in the 3D window, from 0 (lowest) to 100 (highest). Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CLARITY long 0 VOLUME The amount (in percentage of the full range) to increase translucency of low gradients or gradients in the view direction during volume rendering in the 3D window. This allows hidden surfaces to be seen more clearly. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_GRADIENT long 15 VOLUME The threshold above which gradients are shaded and transitory data values ignored during volume rendering in the 3D window, as a percentage of the full range of the windowed data. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_FWHM long 25 VOLUME The distance over which the gradient is taken during volume rendering. This is in voxels * 25, so the default of 25 is one voxel. Also affects data correction for transition regions: setting to zero disables this correction. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_WETNESS long 0 VOLUME How 'wet' objects will appear in volume rendering, from 0 (lowest) to 100 (highest), for any transitory data values with gradients above RES_VOLUME_GRADIENT. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_BRIGHTNESS long 0 VOLUME The overall brightness compensation used when incorporating radiant shadowing into volume rendering in the 3D window, from 0 (lowest) to 100 (highest). Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CROP_Z_HIGH double 100 VOLUME Whether to crop the upper edge of the volume in the z-direction. 100 implies no cropping, 0 crops everything. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CROP_Z_LOW double 0 VOLUME Whether to crop the lower edge of the volume in the z-direction. 0 implies no cropping, 100 crops everything. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CROP_Y_HIGH double 100 VOLUME Whether to crop the upper edge of the volume in the y-direction. 100 implies no cropping, 0 crops everything. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CROP_Y_LOW double 0 VOLUME Whether to crop the lower edge of the volume in the y-direction. 0 implies no cropping, 100 crops everything. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CROP_X_HIGH double 100 VOLUME Whether to crop the upper edge of the volume in the x-direction. 100 implies no cropping, 0 crops everything. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CROP_X_LOW double 0 VOLUME Whether to crop the lower edge of the volume in the x-direction. 0 implies no cropping, 100 crops everything. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_CROP_RESLICE bool false VOLUME Whether to crop the volume to the current location of the reslice plane. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_USE_ALPHA bool false VOLUME Whether to use an additional alpha volume when cropping a volume rendering to a surface. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_LANDMARK text ?? VOLUME The name of a landmark at the centre of a sphere used to crop a volume rendering. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_LANDMARK_RADIUS double 15 VOLUME The radius of a sphere centred on the chosen landmark, when cropping a volume rendering to a landmark. This is expressed in terms of the percentage of the width of the currently loaded image data. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_LANDMARK_INVERT bool false VOLUME Whether to crop within the radius (false) or outside (true) when cropping a volume rendering to a sphere centred on a landmark. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_SURFACE_ANTIALIAS bool false VOLUME Whether to use anti-aliasining when cropping a volume rendering to a surface. Only affects displays if your driver supports at least OpenGL 3.0.
RES_VOLUME_SURFACE_INVERT bool false VOLUME Whether to crop to the inside (false) or outside (true) when cropping a volume rendering to a surface. Only affects displays if your driver supports at least OpenGL 3.0.
RES_SURFACE_RESOLUTION long 5 OBJECT PARAMS What resolution to use (corresponding to the position in the GUI control) when creating a new surface from object contours.
RES_SURFACE_SMOOTHING long 1 OBJECT PARAMS What smoothing to use (corresponding to the position in the GUI control) when creating a new surface from object contours.
RES_SURFACE_COMPOUND_TYPE long -1 OBJECT PARAMS What type of compounding to use when creating a new surface from object contours (-1 = no compounding).
RES_SURFACE_COMPOUND_THICK long 0 OBJECT PARAMS What distance to compound over when creating a new surface from object contours.
RES_SURFACE_COVER bool true OBJECT PARAMS Whether to cover end contours within the data volume when creating a new surface from object contours.
RES_SURFACE_CONNECT_OBJECTS bool false OBJECT PARAMS Whether to focus specifically on objects when creating a new surface from object contours.
RES_SURFACE_CONNECT_HOLES bool false OBJECT PARAMS Whether to focus specifically on gaps between objects when creating a new surface from object contours.
RES_CMAP_GREY_LO long 0 OBJECT PARAMS The low threshold value (in terms of display brightness 0 to 255) when creating object contours from a threshold.
RES_CMAP_GREY_HI long 0 OBJECT PARAMS The high threshold value (in terms of display brightness 0 to 255) when creating object contours from a threshold.
RES_CMAP_GREY_ANTI long 0 OBJECT PARAMS The non-threshold value (in terms of display brightness 0 to 255) when creating object contours from a threshold.
RES_SEGMENT_TYPE long 2 OBJECT PARAMS The topology for automated thresholding: 0 segments all contours, 1 segments only holes within the object, 2 only segments the outer body of the object.
RES_SEGMENT_CONNECTED bool true OBJECT PARAMS Whether to only segment objects which are connected with the initial click point (true, the default value) or segment every object which is currently thresholded.
RES_SEGMENT_RIDGES bool true OBJECT PARAMS Whether to try to follow ridges which are within the threshold when automatically thresholding data. If this and RES_SEGMENT_VALLEYS is false, stradview will revert to the previous default of jumping over gaps in the thresholded data.
RES_SEGMENT_VALLEYS bool true OBJECT PARAMS Whether to try to follow valleys which are outside the threshold when automatically thresholding data. If this and RES_SEGMENT_RIDGES is false, stradview will revert to the previous default of jumping over gaps in the thresholded data.
RES_SEGMENT_FRAME long 1 OBJECT PARAMS Whether to segment only the current frame (0) or every nth frame, when using automated thresholding.
RES_SEGMENT_RANGE long 0 OBJECT PARAMS Whether to restrict the segmentation to this distance (in mm) from the click point, when using automated thresholding. A value of 0 (the default) disables this feature.
RES_CONCAVITY_STRENGTH long 50 OBJECT PARAMS The relative strength, in percent, of concavity filling after segmentation. Setting this to zero does not attempt to fill any concavities, higher levels start to consider more features to be concavities which are then filled in.
RES_JUMP_THRESH long 25 OBJECT PARAMS The gap, in pixels, which may be included in an automated segmentation, despite not being within the threshold. If 'res_segment_ridges' is 'true', this controls the maximum size of a ridge (or valley), otherwise it is the distance (in any direction) of the gap.
RES_SIMPLIFY_THRESH long 3 OBJECT PARAMS When contours are created after thresholding, they are accurate to much better than a pixel, and contain very short segments. This threshold allows the contours to be simplified slightly, which increases the segment length, making the contours easier to edit. The default is '3' which is 0.3 of a pixel.
RES_SEGMENT_OBJECTS long 1 OBJECT PARAMS Controls whether to split the segmentation into multiple separate objects after automated thresholding. If set to one, all contours will stay in the same (current) object. Otherwise, up to this number of sequential objects will be used, starting with the current object which always contains the region which was initially clicked on. Following this are any regions which are distinct, in order of size, with all remaining regions placed in the last object.
RES_THICKNESS_TYPE long 0 THICKNESS The type of thickness algorithm used. This corresponds to the index (starting from zero) in the 'technique' choice in the thickness task page.
RES_THICKNESS_OUTER_LAYER bool true THICKNESS Wether to include an outer surface when saving thickness files or creating a new surface from cortical thickness measurements.
RES_THICKNESS_INNER_LAYER bool true THICKNESS Wether to include an inner surface when saving thickness files or creating a new surface from cortical thickness measurements.
RES_THICKNESS_CREATE_OUTER long 2 THICKNESS Which outer surface to include when saving thickness files or creating a new surface from cortical thickness measurements. The number corresponds to the 'outer layer' choice in the thickness task page.
RES_THICKNESS_CREATE_INNER long 3 THICKNESS Which inner surface to include when saving thickness files or creating a new surface from cortical thickness measurements. The number corresponds to the 'inner layer' choice in the thickness task page.
RES_THICKNESS_CREATE_CAPS bool false THICKNESS Whether to include the end cap (which closes the surface) when creating a new surface from cortical thickness measurements.
RES_THICKNESS_LINE double 1.8 THICKNESS The line length in cm for cortical thickness estimation from CT DICOM data.
RES_THICKNESS_WIDTH double 0.0 THICKNESS The line width (radius to average over) in pixels for cortical thickness estimation from CT DICOM data.
RES_THICKNESS_REVERSE bool false THICKNESS Whether to reverse the direction in which the thickness estimate is performed over the surface.
RES_THICKNESS_GAUSS double 1e10 THICKNESS The std for the Gaussian blur in cm for cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data.
RES_THICKNESS_RECT double 0.0 THICKNESS The size of rectangular blur in cm for cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data.
RES_THICKNESS_A_AVERAGE double 1e10 THICKNESS The average external CT value in HU for cortical thickness estimation from CT DICOM data. Only used when also modelling metal in CT data. 1e10 indicates the average has not been measured.
RES_THICKNESS_C_AVERAGE double 1e10 THICKNESS The average inner CT value in HU for cortical thickness estimation from CT DICOM data. Only used when also modelling metal in CT data. 1e10 indicates the average has not been measured.
RES_THICKNESS_A double 1e10 THICKNESS The external CT value in HU for cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data.
RES_THICKNESS_B double 1e10 THICKNESS The cortical CT value in HU for cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data.
RES_THICKNESS_C double 1e10 THICKNESS The inner CT value in HU for cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data.
RES_THICKNESS_DISP_COL long 3 THICKNESS DISPLAY An index (starting from zero) into the selection box for which colour map to use in thickness estimation.
RES_THICKNESS_DISP_MAP long 0 THICKNESS DISPLAY An index (starting from zero) into the selection box for which property to map over the surface after thickness estimation.
RES_THICKNESS_SCALE_HUMM long 8 THICKNESS DISPLAY The scale value range (in 1000 Hounsfield Unit x mm) for the surface colour map when displaying cortical mass estimation from CT DICOM data.
RES_THICKNESS_SCALE_HU long 20 THICKNESS DISPLAY The scale value range (in 100 Hounsfield Units) for the surface colour map when displaying cortical density estimation from CT DICOM data.
RES_THICKNESS_SCALE_MM long 40 THICKNESS DISPLAY The maximum scale value (in tenths of a mm) for the surface colour map when displaying cortical thickness estimation from CT DICOM data.
RES_THICKNESS_ZERO_HU long 0 THICKNESS DISPLAY The minimum scale value (in 100 Hounsfield Units) for the surface colour map when displaying cortical density estimation from CT DICOM data.
RES_THICKNESS_MAP_DIRECTION long 0 THICKNESS DISPLAY Corresponds to the 'Map direction' choice in the thickness task page, where 0 = 'Normal', i.e. do not change the measurement directions.
RES_THICKNESS_SMOOTH_FILL long 100 THICKNESS DISPLAY What extent (as a percentage) to fill in gaps in the data when smoothing thickness values over a surface.
RES_THICKNESS_SMOOTH long 0 THICKNESS DISPLAY How much to smooth the data when smoothing thickness values over a surface.
RES_THICKNESS_DISTANCE_REJECT long 39 THICKNESS DISPLAY When creating a surface from cortical thickness measurements, whether to exclude measurements too far away from the original surface (in pixels, 40 disables).
RES_THICKNESS_OUTLIER_REJECT long 75 THICKNESS DISPLAY When creating a surface from cortical thickness measurements, whether to exclude measurements which represent too high a curvature (less then given angle).
RES_BIN_IM_FILENAME text - DATA The name of the binary ".sxi" file (including extension) to load with this ".sw" file. Alternatively, if RES_BUF_DICOM is true, the name of the first (lowest number) DICOM or image file to associate with this ".sw" file, or the directory containing these files.

Multiple line parameters saved in data and settings files

The following parameters can be written to either data or settings files, and are followed by multiple values on each line. There can also be multiple copies of each parameter. For instance, there is one line of the form

IM time x y z azimuth elevation roll
for each frame in the data file, where each line gives a timestamp and the location and orientation of the image.

Token Data file Settings file Values Group Description
IM time x y z azimuth elevation roll DATA One line per frame of data. The time (in 100 ns intervals), location x,y,z (in cm) and Euler angles (in degrees) of the position sensor at the point this image was recorded. The probe calibration values are also needed for conversion to the image coordinate system. If no positional information was recorded (RES_POS_REC false), this line only contains the time.
LANDMARK {type} {o} x y z {nx ny nz} name LANDMARKS One line per landmark (specific locations recorded by clicking on stored data). The location x,y,z (in cm) of this landmark in the position sensor base (world) coordinate system. If {type} is '2D' then z is the frame number. If type is 'SURF' then o is the associated object, and the surface normal {nx,ny,nz} is also stored.
FIDUCIAL x y z name LANDMARKS One line per fiducial (specific locations recorded by using a tracked pointing device). The location x,y,z (in cm) of this fiducial in the position sensor base (world) coordinate system.
CURVE o c x0 y0 z0 nx0 ny0 nz0 .. xn yn zn nxn nyn nzn name LANDMARKS One line per surface-based curve (a contour recorded by clicking on surface data). o is the associated object and c whether the curve is closed (0 or 1). The locations xn,yn,zn (in cm) and surface normals nxn,nyn,nzn are stored in order, followed by the name.
RESLICE type {width height nx ny nz} x y z {ux uy uz} DISPLAY One line for each of the three available reslices, type 0 (general) and 1 or 2 (orthographic). For general reslices, the width and height are included along with the normal {nx,ny,nz} and up {ux,uy,uz} vectors. The centre coordinates of the reslice x,y,z are always included.
VOLUME value r g b alpha enabled {rough metal anisotropy} VOLUME One line per colour used in the transfer function for volume rendering the data. The windowed value at which to apply this colour, followed by the r g b colour and opacity alpha, and whether or not this colour is enabled in the transfer function. This may also be followed by the material roughness, metallic and anisotropy values. All are saved as chars from 0 to 255.
OBJECT n solid r g b alpha {rough metal anisotropy} name OBJECT One line per object. The number n of the object, whether it is solid (0 or 1), the color r,g,b, transparency alpha, roughness, metallic and anisotropy value, and the name.
CONT o f closed x0 y0 .. xn yn OBJECT One line per defined contour in the data. The number of the object o which contains this contour, the frame f in which it was defined, whether the contour is closed (0 or 1) and the x and y locations, in pixels from the top left corner of the frame, of the contour vertices.

Parameters saved only in the configuration file

These parameters relate to the overall view or input or undo/redo settings and are hence not dependent on a particular data set.

Token Config file Type Default Description
RES_UNDO_GROUPS long 0x0FCE Enables or disables particular groups of operations within the undo/redo feature. This is a binary bit-field affected by the checkboxes in the undo settings controls.
RES_UNDO_MAX_MEMORY long 1024 The maximum amount of memory, in MB, allowed for the list of undo operations.
RES_EXPERT_MODE bool false If enabled, turns off various warnings and checks.
RES_EXPERT_MODE bool false If enabled, turns off various warnings and checks.
RES_ICON_SIZE long -1 Determines whether the icon size is set (>=0) or automated according to screen size and scale (-1).
RES_MOUSE_RIGHT_OVERRIDE long 1 Controls which tool the right mouse button selects.
RES_MOUSE_MIDDLE_OVERRIDE long 0 Controls which tool the middle mouse button selects.
RES_GLUT_FONT long -1 The font used to draw text in the graphics windows and also the sizes of some other graphics elements. This is either explicitly set (>=0) or automated according to screen size and scale (-1).
RES_USE_SCROLLBARS bool false Whether to use scroll bars in all the visualisation windows, or to control zooming and panning using the mouse buttons.
RES_SCROLL_ZOOM long 5 The amount to increase or decrease the zoom by (in percent) for each individual scroll-wheel click in the 3D, review and reslice windows.
RES_CURSOR_MOVEMENT long 5 The amount to move by (in image pixels) for each individual cursor press in the 3D and ortho windows, or on the tracker-grids.
RES_CURSOR_ROTATION long 5 The angle to rotate by (in degrees) for each individual cursor press in the 3D and reslice windows, or on the tracker-ball.
RES_MOUSE_SENSITIVITY long 5 The number of pixels deemed to be a non-drag of the mouse, and the distance limit for selection.
RES_SNAP_LANDMARKS bool true Whether to constrain data-clicked landmarks to lie on one of the acquired frames.
RES_PRESSURE_TASK bool false If set to true in the config file, will enable the additional pressure task and panorama visualisation.
RES_SPINE_TASK bool false If set to true in the config file, will enable the additional spine task and visualisation.
RES_SPINE_DISP_LANDMARK_NAMES bool true Whether to show landmark names in the additional spine task and visualisation.
RES_DAT_THICKNESS_FILES bool true Whether to save thickness files in the new DAT format with corresponding PLY surfaces (true) or the pre v5.2 format (false).
RES_VRML2_SURFACES bool true Whether to save surfaces in VRML2 format (true) or VRML1 format (false).
RES_CORRECT_HALF_PIXEL_OFFSET bool true Whether to automatically correct older (up to and including version 7.3) stradwin files for a half pixel discrepency between the Stradview coordinates and the DICOM or other medical format coordinates.
RES_SETTINGS_MASK long 0xFFFF A bit-field indicating which settings should be included when saving a new settings file.
RES_DISPLAY_FEATURES long - Used to control whether to display the Stradview version history on startup. Default value is related to current version number.