Stradwin saves information in three distinct places: data files, template files and a configuration file.
Data files are used to store image, position and analysis data from a single recording. They consist of pairs of files with the same name, but different extensions, ".sw" containing textual information and ".sxi" containing binary image data only (except for DICOM data and image sequences, where the original files are used in place of the ".sxi" file). When you load up a data set in Stradwin, the ".sw" file is loaded first to establish the details of the data set, and the ".sxi" file is then loaded automatically. Since the ".sw" file contains unformatted text, it can be viewed and/or edited in any text editor. Equally, since the ".sxi" file is a simple binary file containing only the image data, it is generally straightforward to convert this to alternative formats, using the information in the ".sw" file.
Template ".swt" files are used to store configuration information for Stradwin which is expected to be different for different ultrasound probes, ultrasound machines, or recording sessions. Generally, once you have Stradwin set up for a particular recording, saving a template file will preserve all the relevant settings, and can then be re-loaded at a later time to exactly reproduce the same recording configuration. ".swt" files also contain simple unformatted text, in the same format as the ".sw" file, so they also can be viewed and/or edited in any text editor.
The configuration file, "stradwin.ini" (or ".stradwin.ini" if you are using Linux) is used to store configuration information which is expected to be relatively stable for a given Stradwin installation. This file is automatically updated whenever you change a control which is stored in this file, so that each time you start Stradwin, 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 template and configuration files is also stored in each textual ".sw" data file, so that the data contains a historical record of all the Stradwin parameters at the time the data was recorded. When you load a data file, Stradwin 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. Hence, if you have a template file loaded for a current recording session, loading and closing previous data will not affect the current recording parameters.
Most information in Stradwin text files is stored in single line parameter-value pairs, so for instance the line:
RES_BUF_FRAMES 100indicates 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 + cRF data is stored as a single 16-bit (unsigned short) value per sample, and is ordered such that the sample at time point s, in RF vector v and frame f is at location:
f*RES_RF_SAMPLES*RES_RF_VECTORS + v*RES_RF_SAMPLES + sHence the total size of a scan-converted ".sxi" data file (RES_BUF_RF = false) is given by RES_BUF_FRAMES*RES_BUF_WIDTH*RES_BUF_HEIGHT bytes, whereas an RF file (RES_BUF_RF = true) is given by RES_BUF_FRAMES*RES_RF_SAMPLES*RES_RF_VECTORS*2 bytes.
All rotations in Stradwin ".sw" data files are expressed in Euler angles. The particular convention used in Stradwin is Tait-Bryan angles, ZYX ordering, with azimuth = yaw = alpha, elevation = pitch = beta and roll = gamma. Internally, Stradwin 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 room coordinate system:
// Create matrices for // - position sensor calibration (cal) // - frame location in position sensor coordinates (frame) // - isocentre (room) calibration (iso) 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); matrix16d iso(res_isocentre_xtrans, res_isocentre_ytrans, res_isocentre_ztrans, res_isocentre_azimuth, res_isocentre_elevation, res_isocentre_roll); // Calculate vertices for // - point location relative to the B-scan frame (pixels) // - point location relative to the position sensing device attached to the probe (pos) // - point location in position sensor base coordinates (world) // - point location in room coordinates (room) vertex3d pixels, pos, world, room; 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; room = iso * world;
The following table lists all the single line parameters that are stored in the ".sw" file, and possibly also the configuration ("stradwin.ini") and template (".swt") files. The first nine parameters are always located before the RES_END_HEADER token: Stradwin 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 mainly used to warn the user of unsaved parameters when closing a file or quitting Stradwin.
Token | Data file | Template file | Config file | Type | Default | Group | Description |
RES_BUF_FRAMES | long | 0 | DATA | The number of frames of recorded data. | |||
RES_BUF_WIDTH | long | 720 | IMAGE | The width of scan-converted data, in pixels. | |||
RES_BUF_HEIGHT | long | 576 | IMAGE | The height of scan-converted data, in pixels. | |||
RES_BUF_RF | bool | false | IMAGE | Whether the recorded data is RF or scan-converted. | |||
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_POS_REC | bool | true | POS | Whether we have recorded positional data with each image. | |||
RES_RF_VECTORS | long | 127 | RF | The number of vectors in recorded RF data. | |||
RES_RF_SAMPLES | long | - | DICOM | The number of samples in each vector of recorded RF data. | |||
# | text | - | - | Comment token - this can be followed by any textual comment. | |||
RES_END_HEADER | - | - | - | A special token signifying the end of the header section. | |||
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. | |||
RES_VERSION | text | 4.0 | - | The Stradwin version which wrote this file. | |||
RES_CORRECTED_PRESSURE | bool | false | DATA | 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 | DATA | 1 if the image data has been masked (non-data areas set to zero and ignored in visualisations), 0 otherwise. | |||
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_VID_XPOS | long | 0 | IMAGE | The horizontal offset, in pixels, between the left hand edge of the un-cropped image data and the actual recorded data. | |||
RES_VID_YPOS | long | 0 | IMAGE | The vertical offset, in pixels, between the top edge of the un-cropped image data and the actual recorded data. | |||
RES_VID_RATE | long | -1 | IMAGE | The video recording rate. A number greater than zero indicates frames per second. Other values are 0:as fast as possible, -1:gate recording to positions, -3:record a single image, -4:record multiple sweeps, -5:buffered recording. | |||
RES_VID_MOVE_THRESH | double | 0.03 | IMAGE | Movement threshold (in cm) for recording a new frame, if performing gated recording. | |||
RES_VID_GREY_THRESH | long | 24 | IMAGE | When recording Doppler data, the intensity threshold (as an 8-bit integer) below which a colour video signal is regarded as being grey-scale. | |||
RES_VID_CHROMA_THRESH | long | 20 | IMAGE | When recording Doppler data, the difference in the chroma signals (as 8-bit integers) above which a colour video signal is regarded as being Doppler. | |||
RES_CAL_DATE | text | - | CAL | Date of the last probe positional calibration. Empty if no calibration has been performed. | |||
RES_CAL_PROBE | text | - | CAL | The name of the probe for which the current calibration is valid. | |||
RES_CAL_DEPTH | double | 0 | CAL | The depth (in cm) of the image for which the current calibration is valid. | |||
RES_XTRANS | double | 0 | CAL | The x (lateral) translation (in cm) from the top left corner of the image to the position sensor coordinate system. | |||
RES_YTRANS | double | 0 | CAL | The y (axial) translation (in cm) from the top left corner of the image to the position sensor coordinate system. | |||
RES_ZTRANS | double | 0 | CAL | The z (elevational) translation (in cm) from the top left corner of the image to the position sensor coordinate system. | |||
RES_AZIMUTH | double | 0 | CAL | 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 | CAL | 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 | CAL | 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 | CAL | The lateral (x) scale of the scan-converted image, in cm per pixel. | |||
RES_YSCALE | double | 0.01 | CAL | The axial (y) scale of the scan-converted image, in cm per pixel. | |||
RES_POINTER_CAL_DATE | text | - | CAL | Date of the last pointer positional calibration. Empty if no calibration has been performed. | |||
RES_POINTER_XTRANS | double | 0 | CAL | The x translation (in cm) from the pointer tip to the position sensor coordinate system. | |||
RES_POINTER_YTRANS | double | 0 | CAL | The y translation (in cm) from the pointer tip to the position sensor coordinate system. | |||
RES_POINTER_ZTRANS | double | 0 | CAL | The z translation (in cm) from the pointer tip to the position sensor coordinate system. | |||
RES_POINTCAL_CAL_DATE | text | - | CAL | Date of the last Cambridge pointer positional calibration. Empty if no calibration has been performed. | |||
RES_POINTCAL_XTRANS | double | 0 | CAL | The x translation (in cm) from the pointer's calibration point to the position sensor coordinate system. | |||
RES_POINTCAL_YTRANS | double | 0 | CAL | The y translation (in cm) from the pointer's calibration point to the position sensor coordinate system. | |||
RES_POINTCAL_ZTRANS | double | 0 | CAL | The z translation (in cm) from the pointer's calibration point to the position sensor coordinate system. | |||
RES_ISOCENTRE_CAL_DATE | text | - | CAL | Date of the last room isocentre calibration. Empty if no calibration has been performed. | |||
RES_ISOCENTRE_XTRANS | double | 0 | CAL | The x translation (in cm) from the position sensor to the room coordinate system. | |||
RES_ISOCENTRE_YTRANS | double | 0 | CAL | The y translation (in cm) from the position sensor to the room coordinate system. | |||
RES_ISOCENTRE_ZTRANS | double | 0 | CAL | The z translation (in cm) from the position sensor to the room coordinate system. | |||
RES_ISOCENTRE_AZIMUTH | double | 0 | CAL | The Euler azimuth (in degrees from -180 to 180) from the position sensor to the room coordinate system. | |||
RES_ISOCENTRE_ELEVATION | double | 0 | CAL | The Euler elevation (in degrees from -90 to 90) from the position sensor to the room coordinate system. | |||
RES_ISOCENTRE_ROLL | double | 0 | CAL | The Euler roll (in degrees from -90 to 90) from the position sensor to the room coordinate system. | |||
RES_POS_MANUAL | bool | false | CAL | Whether the positions have been manually entered. | |||
RES_POS_MANUAL_TRAN | long | 0 | CAL | The axis (or 0 for no translation) for manually entered positions. | |||
RES_POS_MANUAL_SPAN | long | 0 | CAL | The total translation distance in mm for manually entered positions. | |||
RES_POS_MANUAL_ROT | long | 0 | CAL | The axis (or 0 for no rotation) for manually entered rotations. | |||
RES_POS_MANUAL_ANGLE | long | 0 | CAL | The total rotation angle in degrees for manually entered rotations. | |||
RES_POS_MANUAL_RADIUS | long | 0 | CAL | The offset radius in mm about which the rotations occurs for manually entered rotations. | |||
RES_DICOM_HUM | double | 1.0 | DICOM | Part of the conversion between raw data values and 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 Hounsfield Units (HU), where HU = (raw * DICOM_HUM) + DICOM_HUB. | |||
RES_DICOM_WIN_WIDTH | double | - | DICOM | The window width for DICOM display, in Hounsfield Units. The default value is whatever is stored in the corresponding DICOM files. | |||
RES_DICOM_WIN_CENTRE | double | - | DICOM | The window centre for DICOM display, in Hounsfield Units. The default value is whatever is stored in the corresponding DICOM files. | |||
RES_DICOM_FILTER | long | 0 | DICOM | Applies a Gaussian filter of extent (2*RES_DICOM_FILTER+1) to the raw data before windowing, to remove noise. '0' turns this filter off. | |||
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_THICKNESS_SCALE_MM | long | 40 | DICOM | The maximum scale value (in tenths of a mm) for the surface colour map when displaying bone cortical thickness estimation from CT DICOM data. | |||
RES_THICKNESS_SCALE_HU | long | 20 | DICOM | The scale value range (in 100 Hounsfield Units) for the surface colour map when displaying bone cortical density estimation from CT DICOM data. | |||
RES_THICKNESS_ZERO_HU | long | 0 | DICOM | The minimum scale value (in 100 Hounsfield Units) for the surface colour map when displaying bone cortical density estimation from CT DICOM data. | |||
RES_THICKNESS_SCALE_HUMM | long | 8 | DICOM | The scale value range (in 1000 Hounsfield Unit x mm) for the surface colour map when displaying bone cortical mass estimation from CT DICOM data. | |||
RES_THICKNESS_TYPE | long | 0 | DICOM | 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_LINE | double | 1.8 | DICOM | The line length in cm for bone cortical thickness estimation from CT DICOM data. | |||
RES_THICKNESS_GAUSS | double | 1e10 | DICOM | The std for the Gaussian blur in cm for bone cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data. | |||
RES_THICKNESS_RECT | double | 0.0 | DICOM | The size of rectangular blur in cm for bone cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data. | |||
RES_THICKNESS_A | double | 1e10 | DICOM | The external CT value in HU for bone cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data. | |||
RES_THICKNESS_B | double | 1e10 | DICOM | The cortical CT value in HU for bone cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data. | |||
RES_THICKNESS_C | double | 1e10 | DICOM | The trabecular CT value in HU for bone cortical thickness estimation from CT DICOM data. 1e10 indicates the value should be estimated from the data. | |||
RES_THICKNESS_A_AVERAGE | double | 1e10 | DICOM | The average external CT value in HU for bone 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 | DICOM | The average trabecular CT value in HU for bone 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_CREATE_INNER | bool | true | DICOM | Whether to include the inner (endocortical) surface when creating a new surface from cortical thickness measurements. | |||
RES_THICKNESS_CREATE_OUTER | bool | true | DICOM | Whether to include the outer (periosteal) surface when creating a new surface from cortical thickness measurements. | |||
RES_THICKNESS_CREATE_CAPS | bool | false | DICOM | Whether to include the end cap (which closes the surface) when creating a new surface from cortical thickness measurements. | |||
RES_THICKNESS_OUTLIER_REJECT | long | 37 | DICOM | When creating a surface from cortical thickness measurements, whether to exclude measurements which represent too high a curvature (less then given angle). | |||
RES_THICKNESS_DISTANCE_REJECT | long | 100 | DICOM | When creating a surface from cortical thickness measurements, whether to exclude measurements too far away from the original surface (in pixels, 100 disables). | |||
RES_RF_DISPLAY | enum | BSCAN | RF | How to generate a scan-converted image from RF data. Possible values are BSCAN, PHASE and STRAIN. | |||
RES_RF_DUAL_DISPLAY | bool | false | RF | For RF data, whether to display a B-scan image side-by-side with the normal scan-converted image. | |||
RES_RF_PROBE_NAME | text | Sonix L9-4/38 | RF | The name in the probe configuration file of the probe used for this data. | |||
RES_RF_PROBE | long | -1 | RF | (Defunct) The character from 'A' (0) to 'Z' (25) in the probe configuration file name of the probe used for this data. Only used if RES_RF_PROBE_NAME is not defined. | |||
RES_RF_FILTER | long | 1 | RF | The filter to use to create an analytic signal from the RF signal. Corresponds to the order of the filters in the probe configuration file. | |||
RES_RF_LOG_MULT | long | 60 | RF | Controls the dynamic range (in dB) of a B-scan display calculated from RF data. | |||
RES_RF_LOG_OFFSET | long | 20 | RF | Controls the offset (in dB) for a B-scan display calculated from RF data. | |||
RES_RF_LOG_GAMMA | double | 1.0 | RF | Controls the gamma value for a B-scan display calculated from RF data. | |||
RES_RF_PERSIST | long | 1 | RF | The number of frames to persist when calculating B-scans from RF data. | |||
RES_RF_VECTOR_OFFSET | long | 0 | RF | The offset in vectors between the first vector available and the first vector actually recorded. | |||
RES_RF_SAMPLE_OFFSET | long | 0 | RF | The offset in samples between the first sample available and the first sample actually recorded. | |||
RES_RF_SCALE | double | 0.01 | RF | The scale (in cm per pixel) for scan-converting RF data. | |||
RES_RF_FREQ | long | 0 | RF | The sample frequency for RF data, as an index into the frequencies available in the corresponding probe configuration file. | |||
RES_RF_FOCUS | long | 0 | RF | The number of the focus used while recording RF data. | |||
RES_RF_FOCII | long | 1 | RF | The number of focii used while recording RF data. | |||
RES_RF_SELECT_VECTOR | long | 0 | RF | The starting vector of the selection region when processing a sub-region of the RF data. | |||
RES_RF_SELECT_VECTORS | long | 0 | RF | The number of vectors in the selection region when processing a sub-region of the RF data. 0 if not using a sub-region. | |||
RES_RF_SELECT_SAMPLE | long | 0 | RF | The starting sample of the selection region when processing a sub-region of the RF data. | |||
RES_RF_SELECT_SAMPLES | long | 0 | RF | The number of samples in the selection region when processing a sub-region of the RF data. 0 if not using a sub-region. | |||
RES_TEXO_TX_TYPE | long | 0 | RF | The type of tx beamforming, corresponding to the selection box, when using the ultrasonix texo driver. | |||
RES_TEXO_RX_TYPE | long | 0 | RF | The type of rx beamforming, corresponding to the selection box, when using the ultrasonix texo driver. | |||
RES_TEXO_DEPTH | long | 40 | RF | The acquisition depth, in mm, when using the ultrasonix texo driver. | |||
RES_TEXO_FOCUS | long | 20 | RF | The focus depth, in mm, when using the ultrasonix texo driver. | |||
RES_TEXO_GAIN | long | 70 | RF | The transmit power (0-100) when using the ultrasonix texo driver. | |||
RES_ULAOP_DEPTH | long | 512 | RF | The depth in samples when using Stradwin with the ULA-OP system. | |||
RES_ULAOP_PRF | long | 12000 | RF | The pulse repetition frequency when using Stradwin with the ULA-OP system. | |||
RES_ULAOP_TGCA | long | 18 | RF | The initial gain in dB when using Stradwin with the ULA-OP system. | |||
RES_ULAOP_TGCB | long | 0 | RF | The depth gain in dB when using Stradwin with the ULA-OP system. | |||
RES_TMD_GAIN | long | 80 | RF | The receive gain, as a percentage of the maximum value, when using Stradwin with a Telemed system. | |||
RES_TMD_POWER | long | 50 | RF | The transmit power, as a percentage of the maximum value, when using Stradwin with a Telemed system. | |||
RES_TMD_RANGE | long | 70 | RF | The dynamic range, in dB, when using Stradwin with a Telemed system. | |||
RES_TMD_DEPTH | long | 50 | RF | The scanning depth, in mm, when using Stradwin with a Telemed system. | |||
RES_TMD_AVERAGE | long | 0 | RF | The number of frames to average when using Stradwin with a Telemed system. | |||
RES_TMD_FOCUS | long | 3 | RF | The focal point, as an index into the set of possible focal points, when using Stradwin with a Telemed system. | |||
RES_TMD_DYNAMIC | bool | true | RF | Whether to use dynamic receive focusing when using Stradwin with a Telemed system. | |||
RES_TMD_DENSITY | long | 2 | RF | The RF line density, as an index into the available line densities, when using Stradwin with a Telemed system. | |||
RES_TMD_FREQUENCY | long | 0 | RF | The transmit frequency, as an index into the available frequencies, when using Stradwin with a Telemed system. | |||
RES_TMD_REJECT | long | 15 | RF | The noise rejection, as a percentage of the maximum value, when using Stradwin with a Telemed system. | |||
RES_TMD_GAMMA | long | 30 | RF | The gamma value, as a percentage of the maximum available, when using Stradwin with a Telemed system. | |||
RES_TMD_TGCn (n=0...4) | long | 50 | RF | The time gain control values from 0 to 4, each as a percentage of the maximum gain value, when using Stradwin with a Telemed system. | |||
RES_STRAIN_SUBSAMPLE | long | 5 | STRAIN | The sub-sampling factor for the analytic signal in strain processing. | |||
RES_STRAIN_ALGORITHM | long | 5 | STRAIN | The algorithm used in strain processing, as an index into the corresponding selection box. | |||
RES_STRAIN_EWEIGHTING | long | 1 | STRAIN | The envelope weighting when using WPS for strain calculation, as an index into the corresponding selection box. | |||
RES_STRAIN_PWEIGHTING | long | 1 | STRAIN | The phase weighting when using WPS for strain calculation, as an index into the corresponding selection box. | |||
RES_STRAIN_LOGCOMPRESS | bool | false | STRAIN | Whether to compress the envelope before strain processing. | |||
RES_STRAIN_LATERAL | bool | true | STRAIN | Whether to perform a lateral search during strain processing. | |||
RES_STRAIN_ELEVATIONAL | bool | true | STRAIN | Whether to perform an elevational search during strain processing. | |||
RES_STRAIN_LATEL_SMOOTH | bool | false | STRAIN | Whether to perform smooth lateral and elevational searching. | |||
RES_STRAIN_HALF_CYCLES | long | 4 | STRAIN | The number of cycles at the probe centre frequency corresponding to half the length of the displacement tracking filter. | |||
RES_STRAIN_WINDOW_2D | bool | true | STRAIN | Whether to use 2D windows for displacement tracking. | |||
RES_STRAIN_WINDOW_3D | bool | false | STRAIN | Whether to use 3D windows for displacement tracking. | |||
RES_STRAIN_SKIP_PIXELS | long | 8 | STRAIN | How many vertical display pixels between displacement estimates. | |||
RES_STRAIN_DIFF_2D | bool | true | STRAIN | Whether to space displacement estimates across vectors as well as display pixels. | |||
RES_STRAIN_DIFF_3D | bool | false | STRAIN | Whether to also space displacement estimates across frames. | |||
RES_STRAIN_DROPOUTS | long | 3 | STRAIN | The lateral search distance (in vectors) for dropout correction. | |||
RES_STRAIN_TRACK_FROM_ZERO | bool | false | STRAIN | Whether to initialise the displacement tracking at zero. | |||
RES_STRAIN_TRACK_FROM_TOP | bool | true | STRAIN | Whether to start tracking from the top or the bottom of the image. | |||
RES_STRAIN_DIFF_OFFSET | long | 1 | STRAIN | Half the width of the gradient filter, in displacement windows. | |||
RES_STRAIN_GRADIENT_2D | bool | false | STRAIN | Whether to use 2D kernels to calculate gradients. | |||
RES_STRAIN_GRADIENT_3D | bool | true | STRAIN | Whether to use 3D kernels to calculate gradients. | |||
RES_STRAIN_WEIGHTING | bool | false | STRAIN | Whether to weight gradient estimation using the data quality measure. | |||
RES_STRAIN_POSTFILTER_ALGORITHM | long | 4 | STRAIN | What algorithm to use to filter strain estimates, as an index into the corresponding selection box. | |||
RES_STRAIN_FILTER_RANGE | long | 25 | STRAIN | Half the range for the strain filter, in number of displacement windows. | |||
RES_STRAIN_PERSISTENCE | long | 20 | STRAIN | How long to persist strain estimates for, in frames. | |||
RES_STRAIN_NORMALISE | long | 8 | STRAIN | What algorithm to use to normalise the strain data, as an index into the corresponding selection box. | |||
RES_STRAIN_NORM_RANGE | double | 3 | STRAIN | The range of normalised strain to display. | |||
RES_STRAIN_NORM_SCALE | long | 35 | STRAIN | An adjustment for the display of normalised strain. | |||
RES_STRAIN_NOISE | long | 57 | STRAIN | The level of strain noise which is acceptable to display (100=display everything). | |||
RES_STRAIN_REG_CONT | long | 50 | STRAIN | The extent of first order smoothing in nonparametric regression (0=none, 100=max). | |||
RES_STRAIN_REG_CONT_AX | bool | true | STRAIN | Whether to perform first order smoothing in nonparametric regression in the axial direction. | |||
RES_STRAIN_REG_CONT_LAT | bool | true | STRAIN | Whether to perform first order smoothing in nonparametric regression in the lateral direction. | |||
RES_STRAIN_REG_CONT_EL | bool | true | STRAIN | Whether to perform first order smoothing in nonparametric regression in the elevational direction. | |||
RES_STRAIN_REG_SMOOTH | long | 0 | STRAIN | The extent of second order smoothing in nonparametric regression (0=none, 100=max). | |||
RES_STRAIN_REG_SMOOTH_AX | bool | false | STRAIN | Whether to perform second order smoothing in nonparametric regression in the axial direction. | |||
RES_STRAIN_REG_SMOOTH_LAT | bool | false | STRAIN | Whether to perform second order smoothing in nonparametric regression in the lateral direction. | |||
RES_STRAIN_REG_SMOOTH_EL | bool | false | STRAIN | Whether to perform second order smoothing in nonparametric regression in the elevational direction. | |||
RES_FLAP_LOOP | bool | true | FLAPPING | Whether to move a 3D mechanical probe in alternating directions or not. | |||
RES_FLAP_MODE | long | 1 | FLAPPING | The acquisition mode for a 3D mechanical probe. 0=frame at once, 1=volume at once, 2=multiple volume. | |||
RES_FLAP_VOLUMES | long | 2 | FLAPPING | The number of acquisition volumes for a 3D mechanical probe. | |||
RES_FLAP_STEPS | long | 50 | FLAPPING | The number of frames in one volume for a 3D mechanical probe. | |||
RES_FLAP_RANGE | long | 10 | FLAPPING | The range in degrees for one volume of a 3D mechanical probe. | |||
RES_FRAMES_IN_VOL | long | 1 | FLAPPING | The number of frames per volume in recorded data. | |||
RES_FLAP_PAIREDSCAN | long | 0 | FLAPPING | The number of frames at each step of the motor. | |||
SWEEPS | longs | - | SWEEPS | A list of frame numbers representing the last frame in each of a set of multiple sweeps. | |||
RES_SWEEP_ADJUSTMENT | long | 100 | SWEEPS | Values in the range 0-100 affect how multiple sweep data is partitioned. | |||
RES_USE_PARTITIONS | bool | true | SWEEPS | Enables and disables the partitioning of multiple sweep data. |
The following parameters 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 rollfor each frame in the data file, where each line gives a timestamp and the location and orientation of the image.
Token | Data file | Template file | Config 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. | |||
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. | |||
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. | |||
OBJECT | n solid r g b a name | OBJECT | One line per object, up to a maximum of ten. The number n of the object, whether it is solid (0 or 1), the color r,g,b and transparency a, 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. |
Token | Data file | Template file | Config file | Type | Default | Group | Description |
RES_BSCAN_OPACITY | double | 1.0 | - | The opacity of the strain image overlaid on a B-scan. If 1, the strain image is shown opaque. | |||
RES_RF_TX_FIRE | double | 1.5 | RF | The trigger level in volts of the tx sync signal when using a Gage acquisition card. | |||
RES_TX_POLARITY | bool | true | RF | The sense of the TX sync signal when using a Gage acquisition card. | |||
RES_RF_FRAME_SYNC | double | 2.5 | RF | The trigger level in volts of the frame sync signal when using a Gage acquisition card. | |||
RES_FRAME_POLARITY | bool | false | RF | The sense of the frame sync signal when using a Gage acquisition card. | |||
RES_IMP_50_OHM | bool | false | RF | What input impedance to use with a Gage acquisition card. | |||
RES_TX_FIRE_STOP | bool | true | RF | Whether to use the trailing edge of the TX sync signal when using a Gage acquisition card. | |||
RES_TX_FIRE_VAR | long | 0 | RF | The amount of percentage variation allowed in the TX sync signal when using a Gage acquisition card. | |||
RES_TEMP_CALIB | long | 0 | CAL | A value in ms to subtract from the position timestamps, in order to take account of any fixed delay between these and the image source timestamps. | |||
RES_AUTO_CORRECT_POS | bool | false | POS | Whether to correct the frame positions from the image data during recording. | |||
RES_POS_DETECT | enum | AUTO | POS | What position sensor to look for connected to a serial port. Possible values are AUTO=auto-detect, FASTRAK, PATRIOT, FLOCK=Flock of Birds, MINI=Mini Flock of Birds, LASER=Laser Bird, POLARIS=Polaris, Spectra or Vicra. | |||
RES_SERIAL_PORT | text | COM1 (windows) /dev/ttyS0 (linux) | POS | The serial port for communicating with a position sensor. | |||
RES_SERIAL_SPEED | long | 38400 | POS | The data rate for communicating with a position sensor. | |||
RES_POLARIS_POINTER | int | 0 | POS | Determines which port to use for the pointer on a Polaris system. A value of zero indicates Stradwin will work this out automatically. | |||
RES_POLARIS_PORT | int | 0 | POS | Determines which port to use for the position sensor on a Polaris system. Possible values are 0=Auto, 1=Port 1, 2=Port 2, 3=Port 3, 4=Port 1 relative to 2, 5=Port 1 re 3, 6=Port 2 re 1, 7=Port 2 re 3, 8=Port 3 re 1, 9=Port 3 re 2. | |||
RES_VIDEO_STANDARD | int | 0 | IMAGE | The video standard, if using a V4L2 or DIRECT_SHOW driver. 0=PAL, 1=NTSC, 2=PAL 4by3, 3=NTSC 4by3. | |||
RES_VID_PORT | long | 2 | IMAGE | Indicates where video is coming from if using a V4L2 or DIRECT_SHOW driver. 1=camera, 2=composite, 4=SVideo, 8=digital. | |||
RES_VID_PORT_NUMBER | long | 0 | IMAGE | Selects a numbered video input on the video device (Linux only). 0=auto (attempt to deduce the input from RES_VID_PORT), other values override RES_VID_PORT. | |||
RES_VID_CARD | enum | - | IMAGE | Source for image data. Can be DIRECT_SHOW, V4L2, GAGE_RF, TERASON, TERASON_RF, ULTRASONIX, ULTRASONIX_RF, ULTRASONIXP, ULTRASONIXP_RF, ULTRASONIXT_RF and ULAOP. This is followed by a string which indicates specific details of the image source. | |||
RES_UTX_PRESET | text | - | IMAGE | Name of preset to use when using the Ultrasonix porta driver. | |||
RES_TERASON_PRESET | text | - | IMAGE | Name of preset to use when using the Terason driver. | |||
RES_ULAOP_SEQUENCE | text | - | IMAGE | Name of sequence preset to use when using the ULA-OP driver. |
Token | Data file | Template file | Config file | Type | Default | Group | Description |
RES_SEGMENT_TYPE | long | 2 | - | 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_FRAME | long | 0 | - | Whether to segment only the current frame (0, the default) or every nth frame, when using automated thresholding. | |||
RES_SEGMENT_RIDGES | bool | true | - | Whether to try to follow ridges which are below the threshold when automatically thresholding data. If this is false, stradwin will revert to the previous default of jumping over gaps in the thresholded data. | |||
RES_JUMP_THRESH | long | 10 | - | 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 is the maximum length of a ridge, otherwise it is the distance (in any direction) of the gap. | |||
RES_SEGMENT_CONNECTED | bool | true | - | 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_THRESH_BY_ZOOM | bool | false | - | Whether the automate the jump_thresh and simplify_thresh resources according to the current zoom in the main review window. | |||
RES_SIMPLIFY_THRESH | long | 3 | - | 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_DISPLAY_RATE | long | 0 | - | The rate at which the display of data in Stradwin is throttled. This can be used to reduce the processing overhead when recording data. A value of 0 indicates no display throttling. | |||
RES_RESLICE_OPACITY | double | 0.5 | - | The opacity with which the reslices are displayed in the 3D window. 1.0=opaque, 0.0=invisible. | |||
RES_DISPLAY_PIXELS | bool | false | - | 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 | - | 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_DISPLAY_FRAME | bool | true | - | If set to true, display the current frame and its intersection (in red) in 3D and reslice windows, and also the extents of the reslices (in white). | |||
RES_BACKGROUND | text | #323232 | - | The colour used for background (non-data) in the data windows, as three hexadecimal RGB values. | |||
RES_GLUT_FONT | long | 4 | - | The font used to draw text in the graphics windows, as an index into the 'graphics font' selection box. This also controls the sizes of some other graphics elements. | |||
RES_SEE_MARK | long | 0 | - | Whether landmarks are permanently visible in all windows. | |||
RES_SEE_DRAW | long | 0 | - | Whether contours and objects are permanently visible in all windows. | |||
RES_DEBUG_VIDEO_DEVICE | long | 0 | - | Setting this to 1 causes Stradwin to display diagnostic information about any installed video grabbing devices. | |||
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_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_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_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_MOUSE_MIDDLE_OVERRIDE | long | 0 | - | Controls which tool the middle mouse button selects. | |||
RES_MOUSE_RIGHT_OVERRIDE | long | 0 | - | Controls which tool the right mouse button selects. | |||
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 (-1). | |||
RES_STRAIN_CMAP | long | 4 | - | An index (starting from zero) into the selection box for the strain colour map. | |||
RES_STRAIN_CMAP_INVERT | bool | false | - | Whether to invert the colours in the strain images. If true, displays stiff objects as black and soft objects as white when using the grey colour maps. | |||
RES_THICKNESS_DISP_MAP | long | 0 | - | An index (starting from zero) into the selection box for which property to map over the surface after thickness estimation. | |||
RES_THICKNESS_DISP_COL | long | 0 | - | An index (starting from zero) into the selection box for which colour map to use in thickness estimation. | |||
RES_UTX_SDK_PATH | text | - | - | The default folder to look for the Ultrasonix SDK. | |||
RES_UTX_SETTINGS_PATH | text | D:\Ultrasonix Settings\User Settings | - | The default folder to look for Ultrasonix user presets. | |||
RES_UTX_LICENSE_PATH | text | D:\Ultrasonix Settings | - | The default folder to look for the porta licenses_web.txt file. | |||
RES_UTX_CMAP_PATH | text | C:\Program Files\Ultrasonix\Exam\Settings\Maps | - | The default folder to look for the Ultrasonix colour map files. | |||
RES_UTX_TYPE | long | 0 | - | The machine type for the impero connection. 0=SonixRP, 1=SonixMDP, 2=SonixArrakis, 3=SonixTouch. | |||
RES_UTX_USM | long | 2 | - | Passed to the usm parameter when initialising the Sonix hardware. | |||
RES_UTX_PCI | long | 2 | - | Passed to the pci parameter when initialising the Sonix hardware. | |||
RES_UTX_HV | long | 0 | - | Passed to the hv parameter when initialising the Sonix hardware. | |||
RES_UTX_DDR | long | 1 | - | Passed to the ddr parameter when initialising the Sonix hardware. | |||
RES_UTX_CHANNELS | long | 1 | - | Passed to the channels parameter when initialising the Sonix hardware. | |||
RES_ULTRASONIX_IP | text | 127.0.0.1 | - | The default address for connection to a Sonix via the ulterius interface. | |||
RES_ULTRASONIX_INJECT | bool | false | - | Whether to inject images back to the Sonix using ulterius or display them in Stradwin. | |||
RES_TERASON_SETTINGS_PATH | text | - | - | The default folder to look for settings when using the Terason driver. | |||
RES_ULAOP_SETTINGS_PATH | text | - | - | The default folder to look for ULA-OP user presets. | |||
RES_CAL_STRIPES | long | 20 | - | The number of vertical lines (stripes) used during plane-based probe calibration. | |||
RES_CAL_MINGRAD | double | 5 | - | The minimum gradient threshold for line detection in plane-based probe calibration. | |||
RES_CAL_PIXTHRESH | long | 3 | - | The allowable deviation of a point from the fitted straight line in plane-based probe calibration. | |||
RES_CAL_INVERT | bool | false | - | Whether to turn the image upside-down before probe calibration. | |||
RES_CAL_ACCEPT_RATIO | double | 0.6 | - | The percentage of stripes which need to agree with the fitted straight line in plane-based probe calibration. | |||
RES_CAL_TEMPERATURE | double | 10 | - | The water temperature (in degrees) for probe calibration. | |||
RES_FLAP_PORT | text | COM4 | - | The serial port used for the mechanical 3D probe. | |||
RES_SNAP_LANDMARKS | bool | true | - | Whether to constrain data-clicked landmarks to lie on one of the acquired frames. | |||
RES_VRML2_SURFACES | bool | true | - | Whether to save surfaces in VRML2 format (true) or VRML1 format (false). | |||
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_PASSWORD | text | stradwin | - | Non-secure password used to change to and from config mode. |