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 aboutImageoverlays).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
glpackage .. ok, this is a pretty big requirement .. See theglobjectand thedisplaycontext.OVERLAY_TYPESdocumentation 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 theImageclass must accept theloadMetaanddataMgrparameters, and pass them through to the base class__init__method.
Currently (fsleyes version 1.19.0.dev0+g1d541d09b.d20260312) 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
OverlayListon various methods. Schedules the Python garbage collector to be executed on the idle loop.
- class fsleyes.overlay.OverlayList(*args, **kwargs)[source]
Bases:
HasPropertiesClass representing a collection of overlays to be displayed together.
Contains a
props.properties_types.Listproperty calledoverlays, containing overlay objects (e.g.ImageorMeshobjects). Listeners can be registered on theoverlaysproperty, so they are notified when the overlay list changes.An
OverlayListobject has a few wrapper methods around theoverlaysproperty, allowing theOverlayListto be used as if it were a list itself.The
loadoverlaymodule 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
DisplayandDisplayOptsproperty 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
DisplayandDisplayOptsclasses.
- getData(overlay, key, *args)[source]
Returns any stored value associated with the specified
overlayandkey.- Parameters:
default – Default value if there is no value associated with the given
key. If not specified, and an unknown key is given, aKeyErroris raised.
- find(name)[source]
Returns the first overlay with the given
nameordataSource, orNoneif 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/DisplayOptsproperty 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/DisplayOptsproperty values may be passed in as keyword arguments.
- replace(iterable, **initProps)[source]
Replace the contents of the overlay list.
Any initial
Display/DisplayOptsproperty 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/DisplayOptsproperty 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:
ImageThe
ProxyImageclass is a simple wrapper around anImageinstance. 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
Imageinstance upon which thisProxyImageis 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
OverlayListto see if there is aFEATImageassociated with the givenoverlay. Returns theFEATImageif found, otherwise returnsNone.
- fsleyes.overlay.findMeshReferenceImage(overlayList, overlay)[source]
Uses heuristics to try to identify a reference image for the given
Meshoverlay. Returns the identified overlay, orNoneif 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.