Chapter 12 : Analyze Commands


This section is devoted to the description of ANALYZE commands. For convenience of reference, these are reproduced in Figure 12.1 indicating their organization.

o
Fig 12.1: Commands under ANALYZE.

The main purpose of ANALYZE commands is to allow the analysis of both scene and structure data so as to quantify specific information relating to the objects that are imaged. Commands under Scene operate on scenes and output a variety of quantitative information and those under Structure operate on structures and structure systems and output appropriate structure-related quantitative information as well as new structure systems and structure plans.

12.1 Scene

12.1.1 Summary of Commands

These commands allow analyzing scenes in a slice-by-slice fashion to extract certain quantitative information based on cell intensities.

Input allows selecting files of type IM0.

Density Profile can be used to specify paths within the scene domain along which cell density distribution can be computed and displayed as a graph. These graphs can be output for later usage. ROIStatistics allows specifying regions-of-interest within the scene domain and computing cell intensity statistics within these regions. The statistics can also be output to a file for later usage or as a record.

12.1.2 Common Options

The common options for commands under Analyze-Scene are: PREVIOUS, NEXT, SET INDEX, GREYMAP, LAYOUT, and ROI. Among these, PREVIOUS, NEXT, SET INDEX, and GREYMAP, are described in Section 7.2. LAYOUT and ROI are short versions of the commands Layout and ROI under VISUALIZE-Slice-Cycle. These two options have further suboptions as illustrated in Figure 12.2. These options have been described in Section 7.2.

o
Fig 12.2: Panel Options for LAYOUT and ROI.

The mouse button state diagram associated with LAYOUT and ROI are similar to those associated with the commands Layout and ROI under VISUALIZE-Slice-Cycle.

12.1.3 Commands

12.1.3.1 Scene-Input

This command should be used for selecting the desired IM0 file. If the most recently selected file is appropriate, it is not necessary to initiate this command. For details of operation, see Section 7.1. Only one input file is permitted for DensityProfile.

12.1.3.2 Scene-DensityProfile

The main purpose of this command is to make it possible to compute and display the distribution of cell density along paths specified interactively by the user. A secondary purpose is to enable the user to measure widths of structures (such as for vessels, lumens, foramina, and walls) by indicating points on the profile (say, of greatest slope) that might represent the structure boundary along the specified path. The displayed profiles can be saved in user-specified files for later usage, such as for printing the profile on paper using standard Unix commands.

The mouse-button state diagram associated with this command is shown in Figure 12.3.

Upon selection of DensityProfile, a default slice (usually the slice with all indexes equal to 1) is displayed at a default grey map setting and at a default magnification. The indexes of the slice are displayed at the upper-left corner of the displayed picture as (i_n, . . . . ,i_1), where i_1, . . . . , i_n are the first to nth indexes of the slice in the n-dimensional scene. The scale factor is displayed underneath the indexes as sf = x. The number indicates the magnification factor of the input slice (sf = 2 means that a pixel in the input slice corresponds to two pixels in the displayed picture). The mouse buttons are set to state 1 in Figure 12.3. The figure illustrates how to proceed to specify a path, to display the profile and to measure structure widths based on density distributions.

o
Fig 12.3: Mouse Button State Diagram for DensityProfile. An arrow leaving a button indicates that that button is clicked.

The panel options available for this command are shown in Figure 12.4. Note that, in state 1 of Figure 12.3, it is not necessary to select successive points on the same slice. For a 3D or 4D input scene, you may change the displayed slice using any of the panel options PREVIOUS, NEXT, or SET INDEX and continue selecting the points to specify the path. For a 3D or 4D scene, a dynamic mode can be selected via the panel option MODE (see below) for specifying a path along which only time changes. In this mode, you cannot select more than one point on the same slice for the same path. In states 4 and 5, the points to indicate where the structure boundary may lie along the path should be selected within the display area of the profile.

o
Fig 12.4: Panel Options for DensityProfile.

MODE: This is a switch with two states called STATIC (default sate) and DYNAMIC. In STATIC state, there are no restrictions on how the points are selected to indicate the path for density profile computation. For a 3D scene, this means that you can specify essentially any path in the 3D space of the scene domain. By choosing the path to be approximately perpendicular to an aspect of an object represented in the scene, the profile of cell density across this aspect can be computed and displayed. Further, by selecting two points, one in the ascending part of the profile and the other in the descending part, the width of this aspect can be measured. In STATIC state, for a 4D scene, care should be exercised in specifying the path. If the 4D scene represents a dynamic object such as the heart (with the fourth dimension being time), arbitrary paths in the 4D spatio-temporal space may not have any meaning. If an object point (such as an anatomic landmark on the heart) can be tracked and indicated for successive time instants, the path so indicated essentially corresponds to purely change of time. Hence, the resulting profile corresponds to a time density curve of the object point. In DYNAMIC sate of the switch MODE, you are forced to select only one point on the same slice. Therefore, this mode is more convenient for studying time density profile of dynamic phenomena.

The remaining panel options work as descried in Sections 7.2 and 12.1.2.

The static option SAVE in the mouse window (see Section 7.3) can be used to save the current density profile in a file whose name appears in the tablet associated with the SAVE option. You may change this name as described in Section 7.3. The profile saved in this file can be later displayed using the Unix command gnuplot . Consult your Systems Manager or an appropriate manual for your computer system for details on further use of this file such as how to print the profile, etc.

12.1.3.3 ROIStatistics

The main purpose of this command is to make it possible to compute ROI statistics for regions-of-interest (rois) of certain fixed shape and size and for user-drawn arbitrary regions. The statistics include: minimum, maximum, mean, and standard deviation of cell density, and minimum, maximum, mean, and standard deviation of gradient magnitude, and area or volume of the region. Effectively, the user can sample various regions within the scene domain, accumulate these statistics, and save them in a file. As in the case of density profile, for dynamic (4D) scenes, this command can be utilized to determine how the statistics within fixed object regions change with time. Obviously, this command can also be used to determine object area/volume or their change with time for dynamic situations.

The mouse button state diagram associated with this command is shown in Figure 12.5.

Upon selection of ROIStatistics, a default slice (usually the slice with all slice indexes equal to 1) is displayed at a default grey map setting and at a default magnification. The indexes of the slice are displayed at the upper-left corner of the displayed picture as (i_n, . . . . , i_1), where i_1, . . . . , i_n are the first to nth indexes of the slice in the n-dimensional scene. The scale factor is displayed underneath the indexes as sf = x. This number indicates the magnification factor of the input slice (sf = 2 means that a pixel in the input slice corresponds to two pixels in the displayed picture). The mouse buttons are set to state 1 in Figure 12.5 and the user should proceed as illustrated in this figure to measure roi statistics. Figure 12.5(a) shows how statistics can be measured for user-drawn regions and Figure 12.5(b) shows how statistics can be measured for rois of predetermined size.

o
Fig 12.5: State Diagrams for ROIStatistics. An arrow leaving a button indicates that that button is clicked. (a) For the case when the roi is user-drawn (FREE), (b) for the case when the roi is of predetermined size (e.g., 55, 77, 555, etc.).

In the table, the slice indexes are listed under "slice#" and the type of roi ("free", 55", etc.) under roi. For 2D roi's, the figure in the last column represents area of the roi. For 3D, this number represents the volume of the roi. The last row, Total, indicates the total (or overall) statistics. For min, max, mean, and std.dev, this corresponds to the min, max, mean and std.dev considering all roi's that are listed. The entry under Area/Volume in the row Total represents sum of areas/volumes of all roi's that are listed. While in state 3 in Figure 12.5, the user can scroll the listing in the table up or down by clicking (with left/middle mouse button) on the scroll buttons in the table.

o
Fig 12.6: Format of the roi Statistics Table.

The panel options associated with ROIStatistics are shown in Figure 12.7.

o
Fig 12.7: Panel Options for ROIStatistics.

TYPE: This is a switch with seven states, called FREE, 55, 555, 77, 777, 99, and 999. In state FREE, the user is allowed to specify free-form roi by drawing a closed curve. The operations associated with this state are illustrated in Figure 12.5(a). In the remaining states, the roi's are of rectangular shape. The size indicated by the state, for example 55, means that the roi is of that size in the original slice. In the displayed picture, the size may be larger or smaller depending on the scale factor.

GRAD: This is a switch with two states, called 2D and 3D. In state 2D, a 2D gradient operator is used to compute gradient-related statistics. In state 3D, a 3D operator is used for this purpose. In some situations, the 3D operator may give more accurate results if you are dealing with 3D or 4D scenes.

The static option SAVE in the mouse window (see Section 7.3) can be used to save the roi statistics currently listed in the table in a file whose name appears in the tablet associated with the SAVE option. You may change this name as described in Section 7.3. The information saved in this file can be recalled in a future session with ROIStatistics by simply changing the file name to the name of the saved file.

12.2 Structure

12.2.1 Summary of Commands

The main purpose of these commands is advanced analysis of structures and the structure systems.

Input allows selecting appropriate input files. Both Register and Kinematics expect input to be binary shells of type Shell1. Hence, the appropriate input files are BS1 files or PLN files that contain Shell1 structures. Register outputs a structure plan given two structure systems, two plans, or one of each, or just one of either, by registering user-specified structures in the input files or features in them. Kinematics has two subcommands -- Inter and Intra. Inter takes two or more input files each containing a structure system or a plan and outputs a plan that captures information about the motion of corresponding objects in the input structure systems or plans. Since motion computation is based on rigid body assumption, if the inputs contain deformable objects, the resulting motion information may not be correct. Intra takes one input file containing a structure system or a plan and outputs a plan that describes the motion of a particular object in the input. The assumption here is that the different structures in the input file represent the different time instances of a rigid dynamic object system.

12.2.2 Commands

12.2.2.1 Structure-Input

This command should be used to select the desired BS1 and PLN files. If the most recently selected files are appropriate, it is not necessary to initiate this command. For details of operation see Section 7.1.

12.2.2.2 Structure-Register

This command allows combining information about an object of study obtained from two sources, for example, brain information from MR and PET. Common structures, or structures containing common features about the object of study, should be provided as input for each of the two sources of information. It accepts two input files, each containing a structure system or a plan, or just one input file containing a structure system or plan, in each case of structures of type Shell1. Corresponding structures in the input file(s) or corresponding features of structures in the input file(s) are specified by the user. The features used at present are points and curves. Registration is done by optimally matching the two entire structures or the features specified for them. The result of this operation is a structure plan. In the case of one input file, the structure plan consists of the structures in the input file (actually only pointers to them) together with a geometric transformation matrix associated with each structure that represents the translation and rotation required for two specified structures or features on them to be optimally matched. In the case two input files, the plan consists of only structures from the first input file together with the transformation matrix. These are best explained with two examples.

Consider the case of one input file first. Suppose that the file contains a structure system with two structures that are to be registered. The tree representations (described in Section 10.2.2) of this structure system and of the resulting structure plan are as in Figure 12.8a. Here object 1 (or its set of features) is transformed to match object 2 (or its set of features). In the tree of the structures plan, nodes labelled A and B represent before and after registration situations, respectively. Nodes labelled C and D represent objects 1 and 2, respectively, and each has an identity matrix associated with it. Nodes E and F also represent objects 1 and 2. Node E has a matrix indicating the transformation required to match object 1 (or its features) to object 2 (or its features) and node F has an identity matrix associated with it. This structure plan can be input directly to VISUALIZE-Surface to view the before- and after-registration results. Alternatively, it can be converted (via PREPROCESS-StructureOperations-Shell1ToShell0 to a Shell0 plan and subsequently viewed and manipulated via MANIPULATE commands. In particular, MANIPULATE-SelectSlice can be used to simultaneously display the corresponding (registered) slices from the two scenes that gave rise to objects 1 and 2 or to output resliced (registered) scenes.

o
Fig 12.8: Examples used for illustrating Registration. (a) The case of one input file, (b) the case of two input files.

Now consider the case of two input files. Suppose that the first file contains a structure system with three objects, the second file contains a structure system with two objects, and that object 1 of the first system is to be matched with object 2 of the second system. The tree representations of the two structure systems and of the output structure plan are shown in Figure 12.8b. In the output structure plan, nodes A and B represent before and after registration of the first structure system. Nodes C, D, and E represent objects 1, 2 and 3 of the first structure system prior to registration and they all have an identity matrix associated with them. Nodes F, G, and H represent objects 1, 2, and 3 also of the first structure system after registration and they all have the matrix representing the transformation required to match object 1 (or its features) of structure system 1 with object 2 (or its features) of structure system 2. It is possible to carry out 3D imaging operations similar to those mentioned for the first case. In general, this is more involved. But this facility is included with more advanced processing in mind. We reommend to the user to follow the path mentioned in the first example.

It is possible to handle more complex structure systems (i.e., with more parameters (levels for the tree)) than those given in the above examples. For instance, the structure system may represent dynamic objects from multiple modalities. A structure plan can be created after registration and it can be visualized, manipulated and analyzed as in the first example above. Currently, a restriction is that matching is based on one object or features specified on one object. This will be generalized to multiple objects in the future.

The actual mechanism of specifying objects or their features to be matched is illustrated in the state diagrams of Figure 12.9. Figures 12.9(a) and 12.9(b) show how points and curves are specified as control features, respectively.

In states 1 and 2, the objects to be matched or the objects for which features are to be specified are selected, one for each structure system. In state 3, if you wish to use the entire structure surface for matching, set the panel switch MODE to SURF and select REGISTER. Otherwise, specify the desired control feature as determined by the state of the panel switch CONTRL. Points and curves are specified alternatively between the two structure systems to retain correspondence. In the present form, multiple objects or feature from multiple objects cannot be specified simultaneously for matching. Curves specified are converted to points and used with the points specified as control features for matching.

The results of registration are presented in the image window in the following form when REGISTER is selected.

o

All of these entries are expressed relative to the scene coordinate system associated with the first object.

o
Fig 12.9a: State Diagram for Structure-Register. An arrow leaving a mouse button area indicates that that button is clicked. Control features are points.

o
Fig 12.9b: State Diagram for Structure-Register. An arrow leaving a mouse button area indicates that that button is clicked. Control features are curves (up to state 3, same as in (a)).

The panel options available for this command are shown in Figure 12.10. A majority of the options function as described under VISUALIZE-Surface. Other options are described below.

MODE: This option is a switch with three states called OPTIM, ALL PTS, and SURF. In state ALL PTS, the specified points and the points sampled on the specified curves are all optimally matched between the two objects to arrive at the transformation needed for registration. In state OPTIM, the points specified and the points sampled on specified curves are checked for pairwise consistency. Those pairs that are most inconsistent are deleted and not included in matching. Often this mode leads to more accurate registration than ALL PTS. In state SURF, the entire structures specified are optimally matched to determine the needed transformation.

The default state of this switch is OPTIM.

UNDO PAIR: This is a button which when selected removes one pair of most recently specified features -- points or curve.

CONTRL: This a switch with two states -- PTS and CRV. The switch should be set to the appropriate value for specifying the desired control features, points or curves, respectively.

o(a)

o(b)
Fig 12.10: Panel Options for Structure-Register. (a) When the number of elements in the parameter vector is 1. (b) When this number is greater than 1.

Once registration is completed, to save the resulting plan, the SAVE option in the mouse window should be selected after changing the output file name if desired.

If you use control features for registration, it is generally a good idea, for more accurate results, to select the features more isotropically over the structure surface than concentrated on one side, view, or area. You may want to register an object with itself for getting an understanding of how features may be selected for best results before you take on the actual registration task.

The plan files output by Register can be visualized (and measured) using the VISUALIZE-Surface commands. To carry out further operations on scenes that gave rise to the matched structures, you need to first convert the plan output by Register into a plan containing Shell0 structures (via PREPROCESS-StructureOperation-Shell1ToShell0) and then use this as input to MANIPULATE-SelectSlice. You may use this command to select slices from scenes corresponding to the registered objects through identical planes passing through the objects, overlay these slices for comparing them and interpreting the density distributions, and even output new scenes that are registered. These scenes may be further input to ANALYZE-ROIStatistics or ANALYZE-DensityProfile for further analysis of the cell density values in a comparative and composite fashion.

12.2.2.3 Structure-Kinematics

Kinematics has two commands under it called Inter and Intra.

Structure-Kinematics-Inter

The main purpose of this command is to compute and output as a plan the motion of rigid objects captured in a set of input structure systems or plans. It accepts two or more input files, each containing a structure system or a plan or structures of type Shell1. Motion of a particular object is determined by following the object with the same number in the different input files, which are assumed to be the different instances of the same object, computing the motion from the first to the second instance, second to the third, and so on. Motion from instance t to the next instance t+1 is expressed as a translation of the centroid of the object, together with an axis of rotation, called instantaneous axis, that passes through the centroid and an angle of rotation about this axis. This motion takes the object from instance t to instance t+1. The rotation and translation components are together expressed as a transformation matrix that is associated with instance t of the object. This becomes a part of the plan that is output. This command allows creation of more instances than the number of instances represented in the input files. This helps in smooth animation of kinematics.

To make these principles concrete, let us consider an example. Suppose we have 2 objects whose rigid body motion is captured in 3 time instances. That is, for each of the two objects, we have three structures each of which represents a particular pose of the object during its motion. (Such information may have come from a scanner. The two objects may represent two bones of a moving joint and the three instances may correspond to the three different positions of the joint for each of which we acquired 3D image data.) The three time instances are captured in three input files called, say, 1.BS1, 2.BS1, 3.BS1, each of which contains two Shell1 structures which correspond to the two objects at that particular time instance. We may represent the structure systems contained in the three files as trees as shown in Figure 12.11(a). Suppose we wish to create 5 time instances for the output plan. Then the tree representation of the output plan will be as in Figure 12.11(b). The output plan actually does not store any structure (Shell1) information. The nodes at the level indicated "objects" contain pointers to the file 1.BS1 which contains the first instance of the two objects. This is sufficient since the structures contained in other files are different manifestations of the same two objects. These nodes also have transformation matrices associated with them which indicate their correct orientation at any time instance.

o
Fig 12.11: An Example to Illustrate how Kinematics-Inter works. (a) Input, (b) Output.

The order of time instances is taken to be in the alphabetical order of the name of the input files. Therefore, the files should be named appropriately when the structures are created for the different time instances.

When this command is selected, kinematics computation is completed for all objects in the input files and the results are reported as follow:

o

The panel options, shown in Figure 12.12, can be used to examine these results object-by-object or as motion relative to some fixed object.

o
Fig 12.12: Panel Options for Kinematics-Inter.

SCRL UP, SCRL DOWN: These are both buttons which allow scrolling up and down the result displayed in the image window. This becomes necessary when the input files contain several time instances.

OBJECT: This is a switch whose value indicates the number of the object for which motion information is to be displayed.

REL TO: This is a switch which indicates the object relative to which motion is to be determined. The default setting is NONE. This means that motion of the objects computed and output is their absolute motion. For other states, motion is computed relative to the object indicated. This means that, when the output plan is displayed via VISUALIZE-Surface, the object relative to which motion is computed will appear stationary and other motions are relative to this apparently stationary object.

This command provides a scale labelled INSTANCES in the dialog window for selecting the desired number of instances for the output. The default setting on this scale is the number of instances in the input files. The actual output operation of creating a PLN file is initiated when the SAVE option in the output section of the mouse window is selected. The nature of the motion information saved depends on the state of the switch REL TO at the time of this operation.

There are other uses for this command than computing kinematics information. We encourage the users to explore these on their own. For example, it can be used to "interpolate" plans or for animating actions based on plans. Suppose we create two plans or structure systems (via MANIPULATE-Move), the first consisting of two objects which constitute two separate segments of an original object (which are obtained via one of the commands under MANIPULATE), and the second consisting of the same two objects except that one of the objects is moved relative to the other. If we input these into Kinematics-Inter and create an output with sufficiently large number of instances, we will have created a smooth animation of the movement of the moved object.

Structure-Kinematics-Intra

The purpose of this command is similar to that of Kinematics-Inter. The only difference is that it accepts one input file containing a structure system or a plan and it outputs a plan containing motion information derived from the input file. Consider again the example given under Kinematics-Inter (Figure 12.11). In order to compute the motion of the two objects, we should build a structure system (via one of the commands under SceneOperations) consisting of all time instances of all objects as illustrated in Figure 12.13. Motion computation then proceeds exactly as in Kinematics-Inter.

o
Fig 12.13: A structure system consisting of 3 time instances for each of 2 objects. It contains the same information as contained in the three files illustrated in Figure 12.11a.


User Manual Library Ref. Manual Tutorial