fsleyes.overlay
This module defines the OverlayList
class, which is a simple but
fundamental class in FSLeyes - it is a container for all loaded overlays.
Only one OverlayList
ever exists, and it is shared throughout the entire
application.
What is an overlay?
The definition of an overlay is fairly broad; any object can be added to
the OverlayList
- there is no Overlay
base class, nor any interface
which must be provided by an overlay object. The only requirements imposed on
an overlay type are:
Must be able to be created with a single
__init__
parameter, which is a string specifying the data source location (e.g. a file name) (but see the note below aboutImage
overlays).Must have an attribute called
name
, which is used as the initial display name for the overlay.Must have an attribute called
dataSource
, which is used to identify the source of the overlay data.Must be hashable (i.e. usable as a dictionary key).
Must be supported by the
gl
package .. ok, this is a pretty big requirement .. See theglobject
and thedisplaycontext.OVERLAY_TYPES
documentation for details on how to get started with this one.
One further requirement is imposed on overlay types which derive from the
Image
class:
The
__init__
method for sub-classes of theImage
class must accept theloadMeta
anddataMgr
parameters, and pass them through to the base class__init__
method.
Currently (fsleyes
version 1.15.0) the only overlay types in existence
(and able to be rendered) are:
|
Class which represents a NIFTI image. |
|
An |
|
The |
|
The |
|
The |
|
The |
|
Class which represents a GIFTI surface image. |
|
The |
|
The |
This module also provides a few convenience classes and functions:
The |
|
Searches the given |
|
Uses heuristics to try to identify a reference image for the given |
- fsleyes.overlay.rungc(func)[source]
Decorator which triggers garbage collection. Used by the
OverlayList
on various methods. Schedules the Python garbage collector to be executed on the idle loop.
- class fsleyes.overlay.OverlayList(*args, **kwargs)[source]
Bases:
HasProperties
Class representing a collection of overlays to be displayed together.
Contains a
props.properties_types.List
property calledoverlays
, containing overlay objects (e.g.Image
orMesh
objects). Listeners can be registered on theoverlays
property, so they are notified when the overlay list changes.An
OverlayList
object has a few wrapper methods around theoverlays
property, allowing theOverlayList
to be used as if it were a list itself.The
loadoverlay
module contains some convenience functions for loading and adding overlays.The
getData()
andsetData()
methods allow arbitrary bits of data associated with an overlay to be stored and retrieved.- __validateOverlay(atts, overlay)
Makes sure that the given overlay object is valid.
- overlays
A list of overlay objects to be displayed.
- initProps(overlay)[source]
Returns a dict containing initial
Display
andDisplayOpts
property values to be used for the givenoverlay
, if they were specified via theappend()
orinsert()
methods.This method requires that there is no overlap between the property names used in
Display
andDisplayOpts
classes.
- getData(overlay, key, *args)[source]
Returns any stored value associated with the specified
overlay
andkey
.- Parameters:
default – Default value if there is no value associated with the given
key
. If not specified, and an unknown key is given, aKeyError
is raised.
- find(name)[source]
Returns the first overlay with the given
name
ordataSource
, orNone
if there is no overlay with saidname
/dataSource
.
- __str__()[source]
Returns a multi-line string containing the names and values of all the properties of this object.
- insert(index, item, **initProps)[source]
Insert a new overlay into the overlay list.
Any initial
Display
/DisplayOpts
property values may be passed in as keyword arguments.
- append(item, **initProps)[source]
Add a new overlay to the end of the overlay list.
Any initial
Display
/DisplayOpts
property values may be passed in as keyword arguments.
- replace(iterable, **initProps)[source]
Replace the contents of the overlay list.
Any initial
Display
/DisplayOpts
property values may be passed in as keyword arguments, where the argument name is the property name, and the argument value is a dict of{overlay : value}
mappings.
- extend(iterable, **initProps)[source]
Add new overlays to the overlay list.
Any initial
Display
/DisplayOpts
property values may be passed in as keyword arguments, where the argument name is the property name, and the argument value is a dict of{overlay : value}
mappings.
- __annotations__ = {}
- __module__ = 'fsleyes.overlay'
- class fsleyes.overlay.ProxyImage(*args, **kwargs)[source]
Bases:
Image
The
ProxyImage
class is a simple wrapper around anImage
instance. It is intended to be used to represent images or data which are derived from another image.- __init__(base, *args, **kwargs)[source]
Create a
ProxyImage
.- Parameters:
base – The
Image
instance upon which thisProxyImage
is based.volume – Must be passed as a keyword argument. If provided, is a slice into the image data specifying the 3D volume to copy. If not provided, the entire image is copied.
- __annotations__ = {}
- __module__ = 'fsleyes.overlay'
- fsleyes.overlay.findFEATImage(overlayList, overlay)[source]
Searches the given
OverlayList
to see if there is aFEATImage
associated with the givenoverlay
. Returns theFEATImage
if found, otherwise returnsNone
.
- fsleyes.overlay.findMeshReferenceImage(overlayList, overlay)[source]
Uses heuristics to try to identify a reference image for the given
Mesh
overlay. Returns the identified overlay, orNone
if one can’t be found.
- fsleyes.overlay.findVTKReferenceImage(overlayList, overlay)[source]
Sub-function of
findMeshReferenceImage()
. If this is a mesh generated by FIRST, it will have a common file prefix with the input image, e.g. struc-L_Hipp_first.vtk.
- fsleyes.overlay.findFreeSurferReferenceImage(overlayList, overlay)[source]
Sub-function of
findMeshReferenceImage()
. If this is a freesurfer mesh from a typical freesurfer output directory, it will be in <dir>/surf/, and the source image will be in <dir>/mri/. Let’s check if there are any images loaded from the /mri/ directory.
- fsleyes.overlay.findAnyReferenceImage(overlayList, overlay)[source]
Sub-function of
findMeshReferenceImage()
. Tries to find a reference image for a mesh overlay. if an image has been loaded from the same directory as the mesh, it is set as the reference.