(a Computer Assisted Visualization and Analysis Software System) Using CAVASS as the Basis for Imaging Applications George Greveraab, Jayaram Udupab, Dewey Odhnerb aComputer Science Department Saint Joseph - PowerPoint PPT Presentation

About This Presentation
Title:

(a Computer Assisted Visualization and Analysis Software System) Using CAVASS as the Basis for Imaging Applications George Greveraab, Jayaram Udupab, Dewey Odhnerb aComputer Science Department Saint Joseph

Description:

CAVASS ITK interface Optionally provide ITK with a user interface. Added code to ITK to enable it to read and write CAVASS files. Interface to ITK CAVASS ... – PowerPoint PPT presentation

Number of Views:228
Avg rating:3.0/5.0

less

Transcript and Presenter's Notes

Title: (a Computer Assisted Visualization and Analysis Software System) Using CAVASS as the Basis for Imaging Applications George Greveraab, Jayaram Udupab, Dewey Odhnerb aComputer Science Department Saint Joseph


1
(a Computer Assisted Visualization and Analysis
Software System)Using CAVASS as the Basis for
Imaging ApplicationsGeorge Greveraab, Jayaram
Udupab, Dewey OdhnerbaComputer Science
DepartmentSaint Josephs UniversitybMedical
Image Processing Group (MIPG), Department of
RadiologyUniversity of Pennsylvania
2
CAVASS contributors
  • Xinjian Chen
  • George Grevera
  • Tad Iwanaga
  • Tingching Kao
  • Shipra Mishra
  • Dewey Odhner
  • Andre Souza
  • Jayaram Udupa
  • Xiaofen Zheng
  • Ying Zhuge

3
Overview
  • Introduction
  • User interface
  • Key features
  • Parallelism
  • Getting Started with CAVASS
  • 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 2009

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 binaries
  • 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
  • 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 OSs
  • maintains native look-and-feel
  • free, open source, multiplatform
  • portable support for mutex, threads, copy-paste,
    drag-and-drop, print, etc.

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

15
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

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

17
Key cavass functionality
18
Overview of CAVASS functionality
19
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.
20
Tools
21
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.

22
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.

23
Interface to ITKmedian filter
24
Interface with ITKCanny edge detection
25
Image processinglive wire interpolation
26
Visualizeslice/cine surface rendering
27
Manipulate
28
Event handling 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).

29
Event handling 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.

30
Analyze
31
PARALLELISM
32
Parallelism
  • MPI (Message Passing Interface)
  • 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 (Open specification for Multi Processing)
  • requires purchase of specialized compilers
  • multi-threaded, shared memory parallelism model
  • requires purchase of expensive multiprocessor
    systems

33
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.

34
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.

35
GETTING STARTED WITH CAVASS
36
Getting started with CAVASS
  • As a user
  • Tutorials
  • Tasks and Recipes
  • As a programmer
  • cvs code repository
  • doxygen code documentation
  • Data C classes
  • Example module

37
Data C classes
  • CavassData
  • Given the name of a data file, CavassData will
    read in the entire data set.
  • ChunkData
  • Given the name of a data file, ChunkData will
    read in a set of contiguous slices (a chunk).
  • When slices are accessed w/in the cached chunk,
    no additional reads are necessary.
  • When a slice is accessed outside of the current
    chunk, a chunk containing the new slice is read.
  • Subclass of CavassData.
  • SliceData
  • Given the name of a data file, SliceData will
    read in a single slice of data.
  • A different slice can be read at any time.
  • Subclass of CavassData.

38
Doxygen documentation example
39
Example module
  • C code that consists of ExampleFrame (a
    subclass of MainFrame) and ExampleCanvas (a
    subclass of MainCanvas).

40
Concluding remarks
41
Concluding remarks
  • User interface
  • Key features (image processing, visualization,
    manipulation, and analysis)
  • Parallelism
  • Getting Started with CAVASS

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

43
Thanks for your attention!
  • Information about CAVASS is available from
    www.mipg.upenn.edu/cavass.
  • The authors gratefully acknowledge NIH grant
    number R01-EB004395 for support of this work.
Write a Comment
User Comments (0)
About PowerShow.com