EVS/ALISA
Contents |
Overview
The current linkage between views in Farsight (ALISA) that enables the PACE technology is implemented using QT's Model/View Architecture. The model classes: QStandardItemModel and QItemSelectionModel are enclosed in a SegmentationModel class which also handles event triggers. In the present implementation this model is taylored for use with nuclei.
The Segmentation Model can be created from Segmentation Result. The Segmentation Result class is an abstract class that handles reading/writing of object data from an XML file. This class should be extended to create specific methods for each object type - editing, feature calculation, and image data handling.
Location of Files
The relevent classes/files can be found in these locations:
- ftkSegmentationResult, ftkObject - farsight/trunk/SegmentationCommon
- ftkNuclearSegmentation - farsight/trunk/NuclearSegmentation
- SegmentationModel, SegmentationView - farsight/trunk/GUI
- example XML - farsight/trunk/NuclearSegmentation
Nucleus Example
The actual construction of the Segmentation Model - and setup of the Views is done in ControlBar (found in the GUI directory).
Refer to the loadResult method for an example of how this is done. This is the process:
1. Build NuclearSegmentation
- Here an instance of NuclearSegmentation is created and the object information is loaded from an XML file
2. Create SegmentationModel
- The SegmentationModel constructor requires a pointer to a SegmentationResult class (our NuclearSegmentation). The SegmenationModel class will convert the object feature information into a QStandardItemModel and construct a QItemSelectionModel.
3. Show Table and Scatter Views
- These require a pointer to the SegmentationModel
4. Create/Show Segmentation Window
- This window is specific to nuclei.
- Key press events within this view are connected to Triggers in the SegmentationModel using signals/slots.
- Requires a pointer to SegmentationModel and the data/label images to work correctly.