1 / 57

CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments

CAVASS is a platform independent software system for computer assisted visualization, analysis, and manipulation of multidimensional data sets. It offers image processing, visualization, manipulation, and analysis features, and supports various image formats including DICOM, VTK, Matlab, and more. The user interface is standardized and customizable, and it includes tools, tutorials, and an interface to ITK for advanced image processing capabilities.

dalehorn
Download Presentation

CAVASS (a Computer Assisted Visualization and Analysis Software System) Features and Developments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CAVASS(a Computer Assisted Visualization and Analysis Software System)Features and Developments George J. Grevera, Ph.D.

  2. CAVASS contributors • Xinjian Chen • George Grevera • Tad Iwanaga • Tingching Kao • Shipra Mishra • Dewey Odhner • Andre Souza • Jayaram Udupa • Xiaofen Zheng • Ying Zhuge

  3. Talk outline • Introduction • User interface • Key features • Miscellaneous topics • Concluding remarks

  4. Introduction to cavass

  5. What is CAVASS? • A CAVA Software System • What is CAVA? • Computer Assisted Visualization and Analysis • So CAVASS is a Computer Assisted Visualization and Analysis Software System

  6. 3D CAVA Software Systems (MIPG) DISPLAY mini computer + frame buffer 1980 DISPLAY82 mini computer + frame buffer 1982 3D83 GE CT/T 8800 1983 3D98 GE CT/T 9800 1986 3DPC PC-based 1989 3DVIEWNIX Unix, X-Windows 1993 CAVASS platform independent, wxWidgets 2008

  7. What is CAVASS? • CAVASS is the next generation of 3DVIEWNIX. • 3DVIEWNIX • development started in 1987 • released in 1993 • development dates back to the ’70s • free • runs on Unix and subsequently Linux • 60 person years of effort • distributed to 100s of sites • basis for over 15 specialized packages/apps Why CAVASS?

  8. Significant, more recent developments • PC platform matures. • price spirals downward • performance increases dramatically • supplant Unix as the scientific workstation of choice • Network bandwidth greatly increases. • Useable parallel processing standards are defined and become freely available. • Toolkits such as VTK and ITK become freely available. • GUI concept matures and platform independent libraries are developed.

  9. CAVASS features* • Image processing • for enhancing information about and defining an object system • Visualization • for viewing and comprehending an object system • Manipulation • for altering an object system (virtual surgery) • Analysis • for quantifying information about an object system • CAVA operations take object system information from one space to another (typically, and eventually, to a quantitative space). *Especially for large, multidimensional (at least 3D), possibly multimodality, data sets.

  10. CAVA User Groups UG1 – CAVA basic researchers/technology developers UG2 – CAVA application developers UG3 – Users of CAVA methods in clinical research CAVASS is not aimed at: UG4 – Clinical end users in patient care

  11. Key CAVASS features • Built upon our experience with 3DVIEWNIX. • Leverages the existing 3DVIEWNIX software base and user interface. • Port to Windows and Mac OS with continued support for Unix and Linux. • Implement parallel algorithms for time consuming operations. • Support for stereo rendering. • Interface to ITK.

  12. Cavass user interface

  13. Portable graphics user interface • Based on wxWidgets (wxwidgets.org) • one C++ API for all OS’s • maintains native look-and-feel • free, open source, multiplatform • portable support for mutex, threads, copy-paste, drag-and-drop, print, etc.

  14. Portable graphics user interface • We also considered Qt, Java, and FLTK. • Qt – proprietary, closed, fees • Java – performance concerns, doesn’t leverage existing C/C++ code, parallelism (MPI) lacking • FLTK – free but doesn’t maintain native look-and-feel

  15. User interface example: Montage

  16. User interface features • Standard-style menu bar. • Window size can be changed. • Support for multiple windows. • Copy window contents to clipboard. • Print window contents.

  17. Standardized user interface • Frame = CAVASS window

  18. Standardized user interface • Canvas = upper drawing area

  19. Standardized user interface • Control area • appears towards bottom • can be resized or even removed • buttons appear towards the right and are relatively standardized; other controls (such as sliders) appear towards the left as necessary

  20. Standardized user interface • Bar at bottom contains status and mouse button information.

  21. User preferences

  22. Key cavass features

  23. Overview of CAVASS functionality

  24. Data interface Support for standard image formats such as DICOM, VTK, Matlab, STL (Stereo Lithography), TIFF, and JPEG. CAVASS also supports the extended DICOM format that was proposed and supported by 3DVIEWNIX.

  25. An example of the CAVASS DICOM header explorer

  26. Tools

  27. Tools • Tutorials • Recipes and Tasks • ShowScreen

  28. Interface to ITK • ITK • Extensive C++ image processing library. • Provides no user interface. • CAVASS – ITK interface • Optionally provide ITK with a user interface. • Added code to ITK to enable it to read and write CAVASS files.

  29. Interface to ITK • CAVASS – ITK interface • Completely table driven. • Steps: • Display a slice • Allow user to set parameters. • Run ITK program. • Read and display result.

  30. Interface to ITK

  31. Image processing

  32. Image processing example: interpolation

  33. Image processing example: threshold

  34. Image processing example: iterative live wire

  35. Image processing example: registration

  36. Visualize

  37. Visualize example: Montage

  38. Visualize example: overlay

  39. Visualize example: t-shell surface rendering

  40. Manipulate

  41. Event handing for visualization and manipulation • wxWidgets supports and implements the Windows-style event callback mechanism. • Very efficient and fine for most user interaction. • X-Windows supports and implements the event queue mechanism. • Most flexible for intensive user interaction w/ possible delays due to computation time (e.g., rendering).

  42. Event handing for visualization and manipulation • We implemented an X-Windows style event queue w/in CAVASS using only the wxWidgets callback mechanism: • Create a separate thread of execution that responds to events in an event queue (of our own creation); performs compute intensive tasks; runs at a lower priority. • The main thread continues to respond to events via the callback mechanism; “intelligently” queues the events for execution by the other thread; runs at a higher priority.

  43. Analyze

  44. Analyze example: density profile

  45. Testing, Parallelism, Getting Started Miscellaneous topics

  46. Testing Test data sets: • Regular: 256 x 256 x 46 MR brain image 6 MB • Large: 512 x 512 x 459 CT of thorax 241 MB • Super: 1023 x 1023 x 417 CT of VW head 873 MB

  47. Parallelism • Considered: • MPI/OpenMPI • Message Passing Interface • OpenMP • Open specifications for Multi Processing

  48. Parallelism • MPI • free (for both Windows, Linux, and Unix) • part of base Linux install • COW (cluster of workstations model) • leverages existing hardware/computers • optional, inexpensive network upgrade • easily expandable • OpenMP • requires purchase of specialized compilers • “multi-threaded, shared memory parallelism” model • requires purchase of expensive multiprocessor systems

  49. Parallelization of Operations in CAVASS • Divide the input image into chunks and assign each chunk to a processor. • A chunk represents data contained in a contiguous set of slices, either image or object structure data.

  50. Parallelization of Operations in CAVASS • CAVA operations can be divided into the following three groups. • Type 1: Operation chunk-by-chunk, each chunk accessed only once. • Ex: slice interpolation. • Type 2: As in Type 1, but significant further operation needed to combine results. • Ex: 3D rendering. • Type 3: Operation chunk-by-chunk, but each chunk may have to be accessed more than once. • Ex: graph traversal. • CAVASS parallelizes all three groups of operations when necessary.

More Related