The Medium structure defines the
optical properties, imaging geometry, the volume to be reconstruction
(where appropriate), and all the known optical perturbations in the
volume (if any). Together with the
SD structure, the
Medium structure is the fundamental structure for defining
the forward and inverse problems to be solved by the PMI toolbox.
Summary of Medium Fields
Muao
Average Optical Absorption [1/cm]
Muspo
Average Transport Scattering Length [1/cm]
idxRefr
Index of Refraction [-]
Geometry
Imaging Geometry
Slab_Thickness
Thickness in Slab Models [cm]
CompVol
Specify Voxels in Forward Matrix
Object
Define Perturbations
Detailed Descriptions
Medium.Muao, Medium.Muspo, Medium.idxRefr
Medium.Muao, Medium.Muspo, and
Medium.idxRefr define the average optical properties of the
tissue. Medium.Muao is the optical absorption coefficient
(inverse absorption length) in 1/cm. Medium.Muspo is the
transport scattering coefficient (inverse transport scattering length)
in 1/cm. Medium.idxRefr is the index of refraction. The
diffusion approximation breaks down for small scattering coefficient,
so Medium.Muspo should be at least 1.0. While the
diffusion approximation is valid, the infinite slab solution can fail
to converge if the absorption coefficient is too small so small
absorption coefficients should be avoided as well.
Medium.Geometry, Medium.Slab_Thickness
Medium.Geometry is a text string that defines the
imaging geometry to be used. Currently supported values are
'infinite' (infinite medium, no boundaries), 'semi' (semi-infinite
medium, boundary at
),
and 'slab' (infinite slab, boundaries at
and
).
For infinite media, Medium.Slab_Thickness is not used.
For semi-infinite medium, the sign of Medium.Slab_Thickness
is used to determine whether the tissue is in the
or
direction (if the thickness is positive, then the tissue is on the
side of the plane). For slab geometries,
Medium.Slab_Thickness specifies both the thickness of the
slab and whether it lies above or below the
plane (the tissue is located between
and
where is given by
Medium.Slab_Thickness).
Medium.CompVol
Medium.CompVol is a structure that declares the volume
being imaged. There is more than one way to specify the volume; the
string Medium.CompVol.Type tells the toolbox which method
is being used. The values of Medium.CompVol.Type currently
recognized by the toolbox are "uniform", "computed", and "list".
If Medium.CompVol.Type is set to "uniform" then the
volume of the voxels (assumed to be the same for all voxels) is
calculated by multiplying together Medium.CompVol.XStep,
Medium.CompVol.YStep, and Medium.CompVol.ZStep.
The centers of the voxels are at the
locations obtained by calling the Matlab function
meshgrid() with the vectors
Medium.CompVol.X, Medium.CompVol.Y,
and Medium.CompVol.Z as its arguments. In other words,
there is one voxel for every possible combination of the elements
of Medium.CompVol.X, Medium.CompVol.Y,
and Medium.CompVol.Z. NOTE: X, Y,
and Z must contain regularly-spaced intervals. The toolbox is
not smart enough to detect non-uniform grids for you.
"Uniform" types, however, are cumbersome and they also contain
redundant information. They exist largely as for historical
reasons and will hopefully someday find their long-deserved
death. The simpler way to set up the imaging volume is with
the "computed" type. In this case, Medium.CompVol.XStep,
Medium.CompVol.YStep, and Medium.CompVol.ZStep
not only give the volume of the voxels but also the spacing between
adjacent voxels. For computed volumes,
Medium.CompVol.X, Y, and Z,
instead of specifying all values, specify just the end-points
and the given step sizes are used to fill in all the other values.
specify just the end-points of the list; the interval is taken
For example, if Medium.CompVol.XStep is
1.0 and Medium.CompVol.XStep is
[0.5, 3.0] then all the voxels will have X-coordinates
of 0.5, 1.5, or 2.5.
Finally, if non-uniform grids are absolutely essential,
Medium.CompVol.Type can be set to "list". Now,
Medium.CompVol.X, Medium.CompVol.Y, and
Medium.CompVol.Z are vectors that directly specify the
location of every voxel and the vector
Medium.CompVol.Volume gives the volume at every voxel
(which need not be constant).
Medium.Object
Medium.Object is a vector of cells that contain structures
defining perturbations to the optical properties. Each cell defines a
single perturbation. All lengths are in centimeters, all optical
properties are in inverse-centimeters. Perturbations should
never overlap, but the toolbox is not smart enough to
check for this explicitly. Every structure contains a field
Medium.Object{}.Type that specifies what kind of
perturbation it describes. The legal values for Type are
"sphere", "block", and "image".
Object Field Structure Summary
Type
Field
Description
"Sphere"
Pos
Coordinates of center of sphere,
Radius
Radius of the perturbation
Mua
Vector of absorption coefficients,
Musp
Vector of scattering coefficients,
"Block"
Pos
Coordinates of center of sphere,
Dims
Lengths of each side of the block,
Mua
Vector of absorption coefficients,
Musp
Vector of scattering coefficients,
"Image"
Mua
Matrix of voxel absorption coefficients,
Musp
Matrix of voxel scattering coefficients,
For spherical perturbations, the Object fields are
Pos, Radius, Mua, and
Musp. The position vector (to the center of the sphere) is
in Object.Pos and the radius of the sphere is in
Object.Radius. The optical properties of the sphere, at
every wavelength, are recorded in Object.Mua and
Object.Musp. Note that these are the actual optical
properties and not the perturbations relative to background. Finally,
the shape of the sphere is mapped on to the grid of voxels before the
perturbation is calculated, so pixelation effects can become important
when the radius becomes comparable to the voxel spacing.
Rectangular (block) perturbations are very similar to spherical
perturbations. Again, Object.Mua and
Object.Musp specify the optical properties and
Object.Pos specifies the center of the perturbation. The
final field, Object.Dims, is a vector that specifies the
length of each side of the box
.
The final perturbation type, "image", specifies the optical
properties at every voxel and at every wavelength. Again, these are
the actual optical properties and not the perturbations
relative to background. The rows of the matrix contain the different
voxels, the columns hold the different wavelengths. All wavelengths
must be defined even if they aren't used in the measurement list.