150 likes | 236 Views
UIIG Library. Contributors: Abraham Campbell, Jungfen Gao, Hans J. Johnson, Ryan Long, Igor Okulist, Christopher Piker, Joseph Reinhardt. Goals. Create a common image processing platform that is: Cross Platform Extensible and Robust Easy to convert existing c or c++ code
E N D
UIIG Library Contributors: Abraham Campbell, Jungfen Gao, Hans J. Johnson, Ryan Long, Igor Okulist, Christopher Piker, Joseph Reinhardt
Goals • Create a common image processing platform that is: • Cross Platform • Extensible and Robust • Easy to convert existing c or c++ code • Useable at multiple complexity levels • Well documented • Inherently 4-D with ability to scale to higher dimensionality
Potential Benefits • Lessen the learning curve • Promote code reuse • Promote code sharing • Reuse of common algorithms • Easy integration of complex algorithms • Increase the stability of the code
Common Tools • CEIG coding standard (suggestions) • CVS server • On-line documentation • http://www.engineering.uiowa.edu/~ceig • Developers are in house
Architecture • Language – C++ • Python binding possible • Perl bindings in progress • Used Software Design Techniques • Object Oriented • Object Reuse –via inheritance hierarchy • Minimized coupling of objects
CImageBase • Abstract • Contains elements that define all images • Size of the image • Pixel spacing • Data pointer • Data type • Memory Model
Memory Model • A memory model describes how the pixel information is stored in memory • Currently two types of memory models, design allows for any type of memory model • Flat – Standard trivial memory layout • Strided – Memory layout with padding needed for FFT’s
CImage • Abstract • Second level in the inheritance hierarchy • Purpose of the class is to create generic algorithms • There is a speed penalty for using this level of abstraction
CImageFlat / Strided • Concrete - i.e. can be created by a programmer • Both classes have the same functionality but use different memory models • Contain the methods for pixel access and are the owners of the image data
File I/O • All file accesses use same syntax • Partial list of supported types • Analyze 7.5 • DICOM (read only) • GIF • JPG • PNG • VOL (UIIG unique type)
Future Work • Create algorithm library • Hans Johnson • FFT • Derivative • Deform image given displacements • Tri-linear interpolation with circular boundaries • Joe Reinhardt • Morphology • Region Growing
Supported Platforms • Linux • GCC • Compaq Alpha • Windows • Microsoft Visual C++ • SGI • 32 and 64 bit • Parallelized code • HP/UX • Pending
UIIG Library Contributors: Abraham Campbell, Jungfen Gao, Hans J. Johnson, Ryan Long, Igor Okulist, Christopher Piker, Joseph Reinhardt