Stradx Files
- Data file names end in .sx and .sxi The
.sx file is an ascii file containing the configuration
settings and position information. The .sxi file is a binary
file containing the images.
- Calibration file names end in .sxc
- Setup file names end in .sxs
- Segmentation file names end in .sxg
- Registration file names end in .sxr
- ECG phase file names end in .sxp
Each set of data is contained in two files. The text part is in a
.sx file and the binary part is in a.sxi file.
The .sx file consists of a number of lines with resource
value pairs, and some lines, beginning with the letters IM
that give information about images. The description of the meaning of the
resources is given in a section below. The IM
lines have the following syntax:
IM time size pos-x pos-y pos-z pos-azimuth pos-elevation pos-roll
The image time is given in nanoseconds. The image size is in bytes. The
position information may be omitted if positions have not been recorded.
If the position information is present then pos-x, pos-y, and pos-z
are distances in centimetres and pos-azimuth, pos-elevation, and pos-roll
are angles in degrees.
The .sxi file contains the images referred to by the IM
lines (in the same order). They are in binary, using
one unsigned byte per pixel. If the recorded data is greyscale, then
the bytes simply record the intensity in the range 0 to 255 (0 is
black and 255 is white). If the
recorded data is colour Doppler, then values in the range 0 to 127
indicate greyscale pixels (0 is black and 127 is white), values in the
range 128 to 191 indicate blue pixels (128 is dark blue and 191 is bright cyan)
and values in the range 192 to 255 indicate red pixels (192 is dark red
and 255 is bright yellow).
This is a
standard Geomview text
file format, which means that Stradx segmentation files can be read by
the Geomview
3D visualisation package. The segmentation file contains a list of
closed 2D contours lying in the x-y plane. Stradx calculates their
correct 3D positions internally, using the position and calibration
information (if available). In the .sxg file, the z-coordinate of
every contour vertex is arbitrarily set to the frame number, so the
contours appear spread out when viewed in Geomview.
At the start of the file are lines describing any defined
landmarks:
# LANDMARK n x y z name
`n' is the landmark number (in the range 0 to 73), `x', `y' and
`z' are floating point coordinates of the landmark, and `name' is a
string used to label the landmark.
The comment `# OBJECT n' within each list of vertices indicates
that the following vertices belong to object `n', where `n' is from 0
to 9. Near the start of the file are lines defining information about
each of these objects:
# OBJECT_INFO n red green blue alpha closed name
`n' is the object number, `red', `green' and `blue' are floating point
numbers in the range 0.0 to 1.0 defining the colour, and `alpha' is a similar
floating point number defining the transparency. `closed' is either `1' or
`0' to indicate whether the object is a solid or not. `name' is a string
used by Stradx to label the object.
The start of the segmentation file also contains information about
invalid frames and dividing planes, used in the segmentation of large structures. Each
invalid frame is marked with a comment, such as `# INVALID_FRAME 23',
which is ignored by Geomview: the frame numbers must be in ascending
order. Dividing planes are defined as a list of four-dimensional
points, where each point defines one plane, and each dimension defines
one of the plane's parameters.
This file contains three types of registration information.
- In-plane registration: transformations
between pairs of B-scan parallel to the plane of the B-scan, based on
image matching to correct for errors in the recorded position
information relative to the tissue position, together with non-rigid
corrections for varying compression of tissue in the plane of the
B-scans.
- Out-of-plane motion: information to
calculate motion out of the plane of the B-scans based on regression
of the image intensity information.
- Multi-sweep alignment: rigid
transformations to improve alignment between blocks of B-scans in a
multi-sweep data set.
Rigid and non-rigid corrections calculated by image registration
can either be used to update the data on which they are based, or
alternatively saved to a separate .sxr file. In the
former case, both the data files (.sx and
.sxi) are updated. In the latter case, the
.sx and .sxi files remain unchanged, and the
.sxr file records the corrected positions and non-rigid
transformations for each B-scan. If only a rigid registration was
calculated and saved, the .sxr file contains lines such
as:
CP pos-x pos-y pos-z pos-azimuth pos-elevation pos-roll
for each recorded B-scan. This is similar to the syntax
described for the .sx file. If non-rigid
registration was also calculated and saved, the .sxr file
contains the additional lines:
PP pos-x pos-y pos-z pos-azimuth pos-elevation pos-roll
SQ shift-y[0] shift-y[1] ... shift-y[height]
for each recorded B-scan. These define the additional positions and
depth shifts required for a non-rigid registration. Note that an
.sxr file can be loaded and applied to the current data
set only if the
number of B-scans agree (for rigid registration) and the height of the
B-scans agree (for non-rigid registration).
This data enables the calculation of the out-of-plane motion based
on the regression between the intensity values of patches in the
B-scan images. For a rectangular B-scan, or when the
probe shape is not
defined, the patches are arranged in a 3x3 grid.
When the a curvilinear probe shape is defined, the three rows of
patches are arranged from the top to the bottom of the image, centred
on the probe image. In this case fewer than three patches may be used
in each row as the B-scan becomes thinner toward the top.
It is necessary to describe the size and location of these
patches. All the patches are the same size, which is given, in pixels
by the following two entries.
WIDTH_ZSPOT width
HEIGHT_ZSPOT height
The location of each patch is described by a separate line, as
follows.
ZSPOT tlx tly which-res-cell
The number of ZSPOT lines defines the number of patches
being used. tlx is the horizontal offset, in pixels, of the
top left-hand corner of the patch from the top left-hand corner of the
B-scan. tly is the vertical downward offset, in pixels, of
the top left-hand corner of the patch from the top left-hand corner of
the B-scan. which-res-cell indicates which resolution
cell width should be used to calculate out-of-plane offsets for
this particular patch.
| which-res-cell = 0 | implies top resolution cell |
| which-res-cell = 1 | implies middle resolution cell |
| which-res-cell = 2 | implies bottom resolution cell |
The resolution cell of the ultrasound beam is assumed to be
Gaussian in shape in the elevational direction, and is specified
for the top third, the middle third, and the bottom third of the
image. (The top third of the image is nearest to the transducer.)
The standard deviation of the width of this Gaussian profile
at each height is specified in centimetres using the following
lines.
RES_RESCELL_TOP top-cell-width
RES_RESCELL_MID mid-cell-width
RES_RESCELL_BOT bot-cell-width
With this background information established, the information to
calculate the complete transformation between the individual
B-scans can now be given. A line of the following form is provided
for each B-scan.
ZI from-frames-back negative-z x-trans y-trans roll q[0] q[1] q[3]
... q[numpatches-1] press-y-trans
| from-frames-back |
Distances calculated using q values given here are
relative to a frame this number back in the sequence. This integer
parameter equals 0 if no information is available about the offsets
of the current frame. |
| negative-z |
Whether the motion is in the positive or negative z direction
relative to the previous frame referred to in
from-frames-back  . Zero implies positive z, 1 implies
negative z. |
| x-trans |
Translation in the x (horizontal) direction, in centimetres. |
| y-trans |
Translation in the y (vertical down) direction in centimetres. |
| roll |
Roll about an axis perpendicular to the B-scan, in degrees. |
| q[ ] |
These values give the offsets of each of the patches in the
elevational direction. The order corresponds to the order of the
ZSPOT declarations. These distances are given in multiples
of resolution cell (standard deviation) widths. Thus to get distances
in centimetres you need to multiply the q values by the
appropriate value from the RESOLUTION_CELL declaration. Note
that the correct resolution cell to use for each spot is given at the
end of its ZSPOT line. These q values come
from linear regression of the patches of B-scan intensity values
between frames. |
| press-y-trans |
Translation offset in the y (vertical down) direction from
rigid to non-rigid registration positions, in centimetres. |
This relative position information, if suffuciently complete, can
be used to reconstruct the relative positions of all the slices in the
data set. In multiple sweep data, the first frame of each sweep will
have the from-frames-back value set to zero. Multiple sweep
data, without any positions sensor information, is currently
reconstructed by stradx with both sweeps starting at the origin.
If the data set contains multiple
sweeps, and an alignment has been
calculated to better align the sweeps, then the .sxr file
will start with entries of the form:
SW type
first last x y z
This means that B-scans in the range first to
last are to be shifted by (x,y,z) from their nominal
positions. The type entry specifies which class of
inter-B-scan registration the sweep alignment is valid for.
type is a number in the range 1 to 5 as follows:
- No inter-B-scan registration
- Rigid inter-B-scan registration
- Rigid and non-rigid inter-B-scan registration
- Rigid inter-B-scan registration, including elevational offsets
- Rigid and non-rigid inter-B-scan registration, including elevational offsets
The .sxf file records the persistent landmarks 'a' to
'z' from the measurements window, and
the landmarks and control settings of the fiducial registration window. This is all
the information required to register ultrasound data to an alternative
coordinate system. The file contains four types of lines:
LANDMARK c x y z name
which defines each landmark 'c' (a character from 'a' to 'z') in
exactly the same way as for the segmentation file
format,
IMAGE_POINT c x y
which defines the x and y location (floating point, relative to
the image) of each of the points in the fiducial registration window,
IMAGE_DATA file
which records the 'file' containing the external image data,
and
REGISTRATION_DETAILS x y angle scale origin plane
which records the settings of each of the controls in the fiducial registration window. 'x' and 'y'
are the location of landmark 'A', 'origin' is set to '1' if the origin
is at landmark 'A', and '0' otherwise, and 'plane' is set to '1' if
landmark 'B' is out of the x-z plane, and '0' otherwise.
The .sxp file records the cardiac activity and phase
of each B-scan. It contains lines such as:
PH activity phase
for each recorded B-scan. This is similar to the syntax
described for the .sx
file. activity is an integer indicating the level of
cardiac activity detected for that B-scan (high for systole, low for
asystole), phase is the estimated phase angle for that
B-scan, in radians. Note that an .sxp file can be loaded
and applied to the current data set only if the number of B-scans
listed in the .sx and .sxp files agree.
The .sxe file records speckle decorrelation curves for RF
data. .sxe files are loaded and saved via the RF calibration window. A .sxe file
starts with a header, containing the following information.
- VECTORS
- The number of vectors in the RF data set
- SAMPLES
- The number of samples in the RF data set
- WIDTH
- The width of the B-scan in pixels
- HEIGHT
- The height of the B-scan in pixels
- SEPARATION
- The separation between the B-scans in millimetres
- EL_SKIP
- The elevational skip factor
- AX_SKIP
- The axial skip factor
- GRID_X
- The number of columns in the patch grid
- GRID_Y
- The number of rows in the patch grid
There then follows a number of blocks, one for each patch. Each block
contains the following information
- PATCH a b c d e f
- Whether the patch is valid (a), the
start and end vectors (b and c), the start and end samples (d and e)
and the number of samples in the patch (f).
- EL_CORR c0 c1 c2 c3 c4 c5 c6 c7 c8 c9
- The correlation
coefficient in the elevational direction at shifts of 0, EL_SKIP,
2xEL_SKIP ... 9xEL_SKIP B-scans
- AX_CORR c0 c1 c2 c3 c4 c5 c6 c7 c8 c9
- The correlation
coefficient in the axial direction at shifts of 0, AX_SKIP,
2xAX_SKIP ... 9xAX_SKIP samples
- LA_CORR c0 c1 c2 c3 c4 c5 c6 c7 c8 c9
- The correlation
coefficient in the lateral direction at shifts of 0 to 9 vectors
Note that all correlation coefficients are calculated for the RF echo
envelope amplitude (not intensity).
Not all the resources below will be saved in every
.sx file. We just save those that are needed in each case.
- RES_CALIB_FILE (saved only when the name of the
calibration file is known)
- This resource is a string that holds
the name of the .sxc file containing the spatial calibration data. When an
.sx file is saved, Stradx will normally write a fully
resolved file name for RES_CALIB_FILE. The exception is when the
calibration file is in the same directory as the .sx file: in
this case, Stradx will write the file name only, without the directory
prefix. This makes it easy to move the .sx, .sxi and
.sxc files to another directory, without having to edit the
RES_CALIB_FILE entry in the .sx file. When an .sx
file is loaded, Stradx will attempt to load the spatial calibration
(.sxc) file indicated by RES_CALIB_FILE. If RES_CALIB_FILE is
not fully resolved, Stradx will search in three places for the
.sxc file, in this order: (1) the same directory as the
.sx file, (2) the directory indicated by RES_CONFIG_DIR and
(3) the current directory.
- RES_SEGMENT_FILE (saved only when the name of the segmentation
file is known)
- This resource is a string that holds the name of
the .sxg file containing the segmentation contours. The rules for
resolving the file name are the same as those for RES_CALIB_FILE,
except that the RES_CONFIG_DIR directory is not searched.
- RES_CORR_FILE (saved only when the name of the registration file
is known)
- This resource is a string that holds the name of the
.sxr file containing the image
registration data. The rules for resolving the file name are the
same as those for RES_CALIB_FILE, except that the RES_CONFIG_DIR
directory is not searched.
- RES_PHASE_FILE (saved only when the name of the ECG phase file is
known)
- This resource is a string that holds the name of the
.sxp file containing the ECG
phase data. The rules for resolving the file name are the same as
those for RES_CALIB_FILE, except that the RES_CONFIG_DIR directory is
not searched.
- RES_BUF_WIDTH (saved always)
- This resource is an integer; the width of the images in pixels.
- RES_BUF_HEIGHT (saved always)
- This resource is an integer; the height of the images in pixels.
- RES_VID_XPOS (saved always)
- This resource is an integer; the x offset of the video grabbing area in pixels.
- RES_VID_YPOS (saved always)
- This resource is an integer; the y offset of the video grabbing area in pixels.
- RES_VID_PORT (saved always)
- This resource is an integer; which port to use on the video device.
- RES_VID_RATE (saved always)
- This resource is an integer; it determines the desired frame rate
of the video board in frames per second. It can take any one of the
following values: -1, 0, 5, 10, 15, 20, 25. If the frame rate is set
to 0 then the video card will be configured to use the default frame
rate for the type of images being acquired. This is usually either 25
or 30 frames per second. If the frame rate is set to -1 then the video
acquisition is motion gated.
- RES_POS_REC (saved always)
- This resource is an integer; it indicates whether position
information is available. 0 implies there is no position information recorded (just images), 1 implies that position information is available for every image.
- RES_BUF_DOPPLER (saved always)
- This resource is an integer; it indicates whether the image data has been colour encoded or not. 0 implies that the image data is simple greyscale, 1 implies that the image bytes encode colour Doppler information.
- RES_BUF_RF (saved always)
- This resource is an integer; if set to 0, the saved data is
interpreted as B-scans, if set to 1, it is interpreted as raw RF data.
- RES_RF_PROBE (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates which probe
configuration file is associated with this data. 0 implies
'probeA.cfg', and 26 implies 'probeZ.cfg'.
- RES_RF_SCALE (saved only when RES_BUF_RF is set to 1)
- This resource is a double precision floating point; it indicates
the scale (in cm/pixel) for the display of RF images.
- RES_RF_SAMPLES (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates the number of samples
recorded for each RF vector. RF data is saved as unsigned short
integers, hence one frame occupies 2 * RES_RF_SAMPLES * RES_RF_VECTORS bytes.
- RES_RF_VECTORS (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates the number of vectors (columns)
of RF data that were recorded. RF data is saved as unsigned short
integers, hence one frame occupies 2 * RES_RF_SAMPLES * RES_RF_VECTORS bytes.
- RES_RF_SAMPLE_OFFSET (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates the offset (in samples)
of the first saved sample in each RF vector, relative to the start of
that vector.
- RES_RF_VECTOR_OFFSET (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates the number (from 0) of
the first saved RF vector, relative to the start of the actual
ultrasound frame.
- RES_RF_FREQ (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; 0 implies sampling at 50MHz, 1
at 100MHz and 2 implies an external clock.
- RES_RF_FOCI (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates how many transmit foci
were used in the RF acquisition.
- RES_RF_FOCUS (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates which was the
shallowest focus in the group of transmit foci.
- RES_BODY_TRX (saved only when the body registration is valid)
- This resource is a double precision floating point; it indicates
the x-translation of the body regsitration (centimetres).
- RES_BODY_TRY (saved only when the body registration is valid)
- This resource is a double precision floating point; it indicates
the y-translation of the body regsitration (centimetres).
- RES_BODY_TRZ (saved only when the body registration is valid)
- This resource is a double precision floating point; it indicates
the z-translation of the body regsitration (centimetres).
- RES_BODY_ALPHA (saved only when the body registration is valid)
- This resource is a double precision floating point; it indicates
the azimuth angle of the body regsitration (degrees).
- RES_BODY_BETA (saved only when the body registration is valid)
- This resource is a double precision floating point; it indicates
the elevation angle of the body regsitration (degrees).
- RES_BODY_GAMMA (saved only when the body registration is valid)
- This resource is a double precision floating point; it indicates
the roll angle of the body regsitration (degrees).
- RES_BODY_SCALE (saved only when the body registration is valid)
- This resource is a double precision floating point; it indicates
the scale factor of the body regsitration.
- RES_BODY_PARTS (saved only when the body registration is valid)
- This resource is a string; it indicates which body parts should
be displayed in the outline window.
- RES_DECOMP_PARAM (saved only if it has been calculated or loaded)
- The echo envelope intensity
corresponding to a B-scan pixel can estimated by dividing the pixel
value by this double precision number, and then working out e (2.7182)
to the power of the result. This number is only used when RF data is
not being used. For RF data, the RES_RF_LOG_MULT parameter is used
instead. The echo envelope intensity is used in sensorless freehand
3D ultrasound using image based regression algorithms.
The setup files consist simply of resource-value pairs. Most resources are
signed long integers, although some (like file names) are strings.
Resources can also be double precision floating point.
The best way to see the format for creating a setup file is to save one from
Stradx and look at it in an editor. Remember that much less checking is
done on resources from setup files than when you change them interactively.
If you set inappropriate values you can break the program.
You can also set these resources in a .stradxrc in your home
directory, which is automatically read whenever you start Stradx. The
.stradxrc file has the same format as a setup file.
- RES_REC_MEM
- (integer) TRUE => record to memory, FALSE => record to disk.
- RES_CONFIG_DIR
- (string) Default directory to search for configuration
(.sxs .sxc) files.
- RES_DATA_DIR
- (string) Default directory to search for data (.sx .sxi
.sxg .sxr .sxp) files.
- RES_CALIB_FILE
- (string) Spatial calibration file name.
- RES_SERIAL_PORT
- (string) Name of serial port to use for position information.
- RES_SERIAL_SPEED
- (integer) Speed of serial port for position information.
- RES_POS_REC
- (integer) Record positions with video.
This resource is set by the `positions required' switch in the
`Edit setup' panel.
- RES_TEMP_CALIB
- (integer) Temporal calibration offset in milliseconds, subtracted
to correct position timestamps. Accounts for latency difference
between position sensor and video source.
- RES_TEMP_CALIB_LABEL
- (string) Identifies which video source and position sensor the
temporal calibration relates to.
- RES_VID_PORT
- (integer) Which port to use on video device.
- RES_VID_BUFFERS
- (integer) Size of video ring buffer in frames.
- RES_VID_XPOS
- (integer) X offset of the video grabbing area in pixels.
- RES_VID_YPOS
- (integer) Y offset of the video grabbing area in pixels.
- RES_BUF_WIDTH
- (integer) Width of the video grabbing area in pixels.
- RES_BUF_HEIGHT
- (integer) Height of the video grabbing area in pixels.
- RES_BUF_DOPPLER
- (integer) Whether to record only the intensity or to encode colour information as well.
- RES_BUF_RF (saved always)
- This resource is an integer; if set to 0, the saved data is
interpreted as B-scans, if set to 1, it is interpreted as raw RF data.
- RES_RF_PROBE (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates which probe
configuration file is associated with this data. 0 implies
'probeA.cfg', and 26 implies 'probeZ.cfg'.
- RES_RF_SCALE (saved only when RES_BUF_RF is set to 1)
- This resource is a double precision floating point; it indicates
the scale (in cm/pixel) for the display of RF images.
- RES_RF_FREQ (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; 0 implies sampling at 50MHz, 1
at 100MHz and 2 implies an external clock.
- RES_RF_FOCII (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates how many transmit foci
were used in the RF acquisition.
- RES_RF_FOCUS (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates which was the
shallowest focus in the group of transmit foci.
- RES_RF_FILTER (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates which pair of matched
filters (from the probe configuration file) was used for processing
the RF data.
- RES_RF_DISPLAY (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates the type of RF display,
where 0 is 'Envelope', 1 is 'Phase' and 2 is 'Frequency'.
- RES_RF_LOG_OFFSET (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates the offset used in
calculating the envelope display of RF data.
- RES_RF_LOG_MULT (saved only when RES_BUF_RF is set to 1)
- This resource is an integer; it indicates the multiplier used in
calculating the envelope display of RF data.
- RES_VID_RATE
- (integer) Video grabbing rate in frames/second. Possible values
are: -1, 0, 5, 10, 15, 20, 25. If the frame rate is set to 0 then the
video card will be configured to use the default frame rate for the
type of images being acquired. This is usually either 25 or 30 frames
per second. If the frame rate is set to -1 then the video acquisition is
motion gated.
- RES_VID_GROUP_DELAY
- (integer) Time in milliseconds to keep video images before making them
available for matching position information.
- RES_VID_CHROMA_THRESH
- (integer) How different the Cr and Cb video signals need to be
for a pixel to be classified as coloured (for Doppler recording).
- RES_VID_GREY_THRESH
- (integer) How bright the Y video signal needs to be
for a pixel to be classified as coloured (for Doppler recording).
- RES_VID_MOVE_THRESH
- (float) How far any corner of the B-scan needs to move (in
cm) for the B-scan to be recorded (for motion gated acquisition).
- RES_CAL_SIGMA
- (float) This controls the smoothing applied to the image
in advance of the edge detection process (for automatic calibration).
- RES_CAL_STRIPES
- (integer) This sets the number of vertical bands in the image
that are used for the edge detection process (for automatic calibration).
- RES_CAL_MINGRAD
- (float) How strong the image gradient needs to be for an edge element to
be detected (for automatic calibration).
- RES_CAL_PIXTHRESH
- (integer) This parameter determines the
vertical tolerance (in pixels) that is used when determining
collinearity (for automatic
calibration).
- RES_CAL_ACCEPT_RATIO
- (float) The proportion of edge elements that must be collinear for
the line to be accepted (for automatic
calibration).
- RES_CAL_INVERT
- (integer) Whether the edge detector scans up (0) or down (1) the
image (for automatic calibration).
- RES_SEG_FIRE_JUMP
- (integer) How far the grass fire will jump over unthresholded
pixels to reach thresholded pixels on the other side (for segmentation by thresholding).
- RES_CPU_GRAPHICS_POWER
- (integer) An indication of how powerful your computer's CPU and
graphics subsystem are. Influences how ambitious Stradx is when
attempting real-time reslices and manifolds. Also controls how many
triangles to display in the mannequin model (for body-centered visualisation).
- RES_ETHERNET_SERVER
- (string) The name of the ethernet video server (see the setup menu).
- RES_POS_DETECT
- (integer) The type of position sensor to search for on the
serial port. Possible values are 0 (auto detect), 1 (Polhemus
Fastrak), 2 (Ascension Flock of Birds), 3 (Ascension MiniBird), 4
(Ascension LaserBird), 5 (Northern Digital Polaris) and 6 (Polhemus
Patriot).
- RES_NO_GREET_PASSWORD
- (string) The password to disable the Stradx's greeting panel.
Some resources used in previous
versions of Stradx are now defunct. These are:
- RES_CALIB_DIR
- (string) Intepreted as RES_CONFIG_DIR
- RES_REGISTRATION_TTRIS
- (integer) Intepreted as RES_CPU_GRAPHICS_POWER
- RES_REGISTRATION_TRX
- (float) Interpreted as RES_BODY_TRX
- RES_REGISTRATION_TRY
- (float) Interpreted as RES_BODY_TRY
- RES_REGISTRATION_TRZ
- (float) Interpreted as RES_BODY_TRZ
- RES_REGISTRATION_ALPHA
- (float) Interpreted as RES_BODY_ALPHA
- RES_REGISTRATION_BETA
- (float) Interpreted as RES_BODY_BETA
- RES_REGISTRATION_GAMMA
- (float) Interpreted as RES_BODY_GAMMA
- RES_REGISTRATION_BODYP
- (string) Interpreted as RES_BODY_PARTS
- RES_SEGMENT_DIR
- (string) Quietly ignored
- RES_SETUP_DIR
- (string) Quietly ignored
- RES_VINO_BUFFERS
- (integer) Intepreted as RES_VID_BUFFERS
- RES_VINO_GROUP_DELAY
- (integer) Intepreted as RES_VID_GROUP_DELAY
- RES_VINO_PORT
- (integer) Intepreted as RES_VID_PORT
- RES_VINO_RATE
- (integer) Intepreted as RES_VID_RATE
- RES_VINO_XPOS
- (integer) Intepreted as RES_VID_XPOS
- RES_VINO_XSIZE
- (integer) Intepreted as RES_BUF_WIDTH
- RES_VINO_YPOS
- (integer) Intepreted as RES_VID_YPOS
- RES_VINO_YSIZE
- (integer) Intepreted as RES_BUF_HEIGHT
- RES_FASTRAK_OFFSET
- (integer) Interpreted as RES_TEMP_CALIB
- RES_BIRD_OFFSET
- (integer) Interpreted as RES_TEMP_CALIB
- RES_POLARIS_OFFSET
- (integer) Interpreted as RES_TEMP_CALIB
Calibration files consist of resource-value pairs for the 8 spatial calibration parameters and 4 probe shape parameters
listed below. They should all be double precision floating point
numbers. The spatial calibration parameters define the transformation
to move from the receiver of the position sensor to the scan plane of
the ultrasound probe. Alternatively, you can think of them as the
coordinate transformation to convert scan plane coordinates to the
coordinate system of the position sensor receiver. The scan plane is
defined to have the x axis running across the surface of the scan head
and the y axis going into the subject being scanned.
The probe shape parameters define the location of the actual
ultrasound data within the acquired video image.
All the descriptions of transformations below are with respect to
a fixed right handed coordinate system associated with the
cropped B-scan plane (ie. origin at the top left hand corner of
the `Review' or `Preview' window). The transformations
are applied in the following order; scale the x direction by
RES_XSCALE, scale the y direction by RES_YSCALE, rotate RES_ROLL
degrees about the x axis, rotate RES_ELEVATION degrees about the y
axis, rotate RES_AZIMUTH degrees about the z axis, finally translate
by the vector (RES_XTRANS, RES_YTRANS, RES_ZTRANS).
- RES_XTRANS
- Translation in the x direction (centimetres).
- RES_YTRANS
- Translation in the y direction (centimetres).
- RES_ZTRANS
- Translation in the z direction (centimetres).
- RES_AZIMUTH
- Rotation about the positive z axis (degrees).
- RES_ELEVATION
- Rotation about the positive y axis (degrees).
- RES_ROLL
- Rotation about the positive x axis (degrees).
- RES_XSCALE
- Scale across image in x direction (cm per pixel).
- RES_YSCALE
- Scale down image in y direction (cm per pixel).
- RES_PROBE_X
- The x location of the centre of curvature of a convex
probe (or the top middle of a linear probe) relative to the origin of the
(non-cropped) video input, in pixels.
- RES_PROBE_Y
- The y location of the centre of curvature of a convex
probe (or the top middle of a linear probe) relative to the origin of the
(non-cropped) video input, in pixels.
- RES_PROBE_TOP
- The vertical distance between the centre of
curvature and the start of the ultrasound data, in pixels (zero for
linear probes).
- RES_PROBE_WIDTH
- Half the horizontal distance between the top corners of the
ultrasound data, in pixels.
- RES_RESCELL_TOP
- Standard deviation of width, in centimetres, of the (assumed)
Gaussian shaped ultrasound resolution cell in the elevational
direction, valid for the top third of the ultrasound image (nearest to
the transducer).
- RES_RESCELL_MID
- Standard deviation of width, in centimetres, of the (assumed)
Gaussian shaped ultrasound resolution cell in the elevational
direction, valid for the middle third of the ultrasound image.
- RES_RESCELL_BOT
- Standard deviation of width, in centimetres, of the (assumed)
Gaussian shaped ultrasound resolution cell in the elevational
direction, valid for the bottom third of the ultrasound image
(furthest from the transducer).
The current calibration values are always displayed in the `Calibration Controls' panel, which is
accessible from the `Calibration'
menu. The current probe shape can be displayed in the `Review' or `Preview' windows, by clicking on the
'Display probe shape' button in the `Calibration Controls' panel.