Chapter 14 : 3D Imaging Recipes


In other sections of this manual, we have described the various 3DVIEWNIX commands in detail. To accomplish any 3D imaging task, commands need to be selected from among these and applied in a certain order. To give the users a sense of what the potential orders can be, we give several examples which constitute specific processing paths that can be taken. These are given to guide those users who may not be familiar with 3D imaging operations from a technical point of view and also to indicate to the more adventurous users who are familiar with 3D imaging operations the large variety of possible processing paths that are not explicitly mentioned here. We hope, in the course of time, users will develop 3D imaging recipes best suited for a variety of 3D imaging tasks and include them in this section for the ready use and benefit of other 3DVIEWNIX users. We recommend to those interested in pursuing this subject further in a systematic manner. The operations listed below are not necessarily the best, in terms of speed, quality of results, size of files created, etc., for the situations indicated. The users should experimentally determine the approach best suited for their application.

14.1 Surface Rendering

  1. High contrast objects, such as bone in CT data, can be segmented via thresholding. A simple sequence of operations that quickly allows viewing such objects is the following: In this approach, surface normals are computed using density gradients in the input scene. A slight variation of this approach is to filter the scene via PREPROCESS-SceneOperations-Filter before processing by Threshold.
  2. This is an alternative approach to visualizing high-contrast objects, often more accurate than recipe 1:
  3. A slight modification to 2 often gives quite different results. Follow a and b of 2, filter the result and threshold the resulting grey scene, and then follow c to g of 2.
  4. When slice spacing is sufficiently small, this approach may be considered.
  5. When the objects have poor contrast or when the original scene is noisy, this approach gives good results.
  6. This is just to emphasize that computed features can be used as input scene wherever a scene is a valid input. In all recipes given above, you may generate Shell0 structures in a BS0 file instead of the Shell1 structures and use MANIPULATE commands to visualize and analyze the structures. Visualization is generally peppier in MANIPULATE than in Surface-View.

    14.2 Volume Rendering

    Instead of creating BS0 and BS1 files, as in the above recipes, the structures can be generated as non-binary shells (SH0 files) and visualized via VISUALIZE-Volume commands. Here are some examples.
  7. This is a direct sequence of operations involving classification and rendering. The scene output in b may be filtered via filter prior to step c.
  8. A less time consuming approach than that in 7 is the following: The input scene may be filtered via Filter prior to step b.
  9. Same as 7 or 8 using Classify-2Features instead of Classify-1Feature.
  10. This approach is different from those in 7, 8, and 9 in that it allows filtering the materials classified. Note that if you use Classify-2Features, you will have to generate another scene for the second feature. You may use a gradient of the original scene, or of the scene output in b, computed via Filter for this purpose.
  11. This is an interesting approach that gives good results on data that are segmented interactively or data that represent objects of low contrast or noisy objects. In some applications, segmented results are available as a stack of contours. If these are in the Curve0 format (see [12] for details), the data should be first converted to a binary scene (BIM file). Subsequently steps c to f can be followed to visualize these data.

    It should be clear to the user by now the variety of possible recipes one can create. We stop here with the examples on visualization and invite the users to explore other paths on their own. It should also be clear that there should be some form of systematic guidance available to choose from among a class of approaches for a particular application on hand. This will be provided in the future based on mathematical (3D and 4D) phantoms and on quantifiable deviations in form and depiction of computed structures from the ideal.

    14.3 Manipulation

    We now give some examples of the operations using MANIPULATE commands. As explained in Section 11, the number of possible ways the various operations under MANIPULATE alone can be combined meaningfully is quite large. The users should bear in mind that these combinations can be further combined with those that have just been indicated under visualization (and those to be described under analysis).
  12. This is a rather direct approach. Its purpose is to simulate a particular surgical segmental movement, may be for measuring, prior to surgery, how much a segment should be moved relative to some observable landmarks.
  13. This example relates to assessing unilateral deformities (such as facial) in objects that are supposed to be roughly symmetric.
  14. MANIPULATE can also be used to register objects. Suppose we have imaged two instances of the same object (perhaps at different times and/or via different modalities). Suppose also that there is a significant common part in the structures representing the object. This situation may have occurred because in one of the instances a somewhat different aspect of the object was in the field of view of the imaging device. We can register the two structures using MANIPULATE as follows. (See also 15 below).

    14.4 Analysis

    We now consider some examples that illustrate analysis operations.
  15. This example pertains to registration. Suppose we have image data acquired about an object of study at two different time instances by the same modality or by different modalities. This example illustrates how the two data sets can be represented in a common coordinate system with registration so that the image data can be analyzed in a comparative and composite fashion. You may start with these two scenes which are supposedly in registration and repeat steps b-e for possible further refinement of registration.
  16. This example pertains to kinematic analysis. Suppose you have a 4D scene or a sequence of 3D scenes capturing motion of an assembly of rigid objects such as a human joint. The motion of the individual objects can be quantified and expressed as a plan file using the following sequence of operations.
  17. This example relates to computing volume of objects. The most direct approach is to use Threshold when the object can be identified via thresholding. There are two possible approaches. The first is as follows: The second approach is to create directly a BS1 file containing the surface at an appropriate resolution in step b. The result from the first approach is often more accurate than that from the second.

    A third approach is to use Interactive2D instead of step b to create a binary scene in those situations where it is difficult to segment the object automatically and then to proceed with the remaining steps.

It is sometimes useful to build new commands that would perform composite operations as shown in these recipes. Operations that do not require user interaction can be combined together into Unix shell scripts. We have included some scripts in the PROCESS/SAMPLES/SCRIPTS directory of the 3DVIEWNIX system. Although writing scripts requires some shell programming knowledge, you may be able to modify (or use) these sample scripts. You will find further details on these scripts in the README file of this directory.


User Manual Library Ref. Manual Tutorial