EVS/ALISA

From FarsightWiki
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 +
=== Overview ===
 
The current linkage between views in Farsight (ALISA) that enables the PACE technology is implemented using [http://doc.qtsoftware.com/4.4/model-view-programming.html QT's Model/View Architecture].  The model classes: [http://doc.qtsoftware.com/4.4/qstandarditemmodel.html QStandardItemModel] and [http://doc.qtsoftware.com/4.4/qsitemselectionmodel.html 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 current linkage between views in Farsight (ALISA) that enables the PACE technology is implemented using [http://doc.qtsoftware.com/4.4/model-view-programming.html QT's Model/View Architecture].  The model classes: [http://doc.qtsoftware.com/4.4/qstandarditemmodel.html QStandardItemModel] and [http://doc.qtsoftware.com/4.4/qsitemselectionmodel.html QItemSelectionModel] are enclosed in a SegmentationModel class which also handles event triggers.  In the present implementation this model is taylored for use with nuclei.
  
Line 5: Line 6:
 
[[Image:ALISA.PNG|thumb|1000px|center]]
 
[[Image:ALISA.PNG|thumb|1000px|center]]
  
 +
=== Location of Files ===
 
The relevent classes/files can be found in these locations:
 
The relevent classes/files can be found in these locations:
 
* ftkSegmentationResult, ftkObject - farsight/trunk/SegmentationCommon
 
* ftkSegmentationResult, ftkObject - farsight/trunk/SegmentationCommon
Line 10: Line 12:
 
* SegmentationModel, SegmentationView - farsight/trunk/GUI
 
* SegmentationModel, SegmentationView - farsight/trunk/GUI
 
* example XML - farsight/trunk/NuclearSegmentation
 
* 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:<br>
 +
 +
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 [http://doc.qtsoftware.com/4.4/signalsandslots.html signals/slots].
 +
* Requires a pointer to SegmentationModel and the data/label images to work correctly.
 +
 +
=== Adding a New Editor ===

Revision as of 19:23, 7 May 2009

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.

Adding a New Editor

Personal tools