ITKv4 Image Interpretation Layer. ITK - IO ImageIOBase VectorImage NumberOfComponents IOComponentType IOPixelType ConvertPixelBuffer Nested Switchs Based.

Slides:



Advertisements
Similar presentations
Support for Time in ITK Patrick Reynolds Patrick Cheng John Galeotti Arnaud Gelas.
Advertisements

Introduction to C Programming
Systems and Technology Group © 2006 IBM Corporation Cell Programming Tutorial - JHD24 May 2006 Cell Programming Tutorial Jeff Derby, Senior Technical Staff.
A PLFS Plugin for HDF5 for Improved I/O Performance and Analysis Kshitij Mehta 1, John Bent 2, Aaron Torres 3, Gary Grider 3, Edgar Gabriel 1 1 University.
Programming with CUDA WS 08/09 Lecture 6 Thu, 11 Nov, 2008.
Matrix Completion IT530 Lecture Notes. Matrix Completion in Practice: Scenario 1 Consider a survey of M people where each is asked Q questions. It may.
A Unified Data Model and Programming Interface for Working with Scientific Data Doug Lindholm Laboratory for Atmospheric and Space Physics University of.
 Open standard for parallel programming across heterogenous devices  Devices can consist of CPUs, GPUs, embedded processors etc – uses all the processing.
Data Models (Raster) Reading Assignment: Bolstad, Chapter 2.
Raster Data in ArcSDE 8.2 Why Put Images in a Database? What are Basic Raster Concepts? How Raster data stored in Database?
EE442—Multimedia Networking Jane Dong California State University, Los Angeles.
Object-based Image Representation Dr. B.S. Manjunath Sitaram Bhagavathy Shawn Newsam Baris Sumengen Vision Research Lab University of California, Santa.
Chapter 1 An Overview of Database Management. 1-2 Topics in this Chapter What is a Database System? What is a Database? Why Database? Data Independence.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Introduction to Array The fundamental unit of data in any MATLAB program is the array. 1. An array is a collection of data values organized into rows and.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
CSC – Java Programming II Lecture 9 January 30, 2002.
1 USC Information Sciences Institute Yolanda Gil AAAI-08 Tutorial July 13, 2008 Part II Designing Workflows AAAI-08 Tutorial on Computational.
HDF5 A new file format & software for high performance scientific data management.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
Filtering and Color To filter a color image, simply filter each of R,G and B separately Re-scaling and truncating are more difficult to implement: –Adjusting.
The HDF Group HDF5 Datasets and I/O Dataset storage and its effect on performance May 30-31, 2012HDF5 Workshop at PSI 1.
By Abhishek Singh Rajhesh Babu, Bangalore Revanna And Joel Solomon, Bula.
Computer Programming 12 Mr. Jean April 24, The plan: Video clip of the day Upcoming Quiz Sample arrays Using arrays More about arrays.
1 HDF5 Life cycle of data Boeing September 19, 2006.
CS1372: HELPING TO PUT THE COMPUTING IN ECE CS1372 Some Basics.
1 Perception and VR MONT 104S, Fall 2008 Lecture 20 Computer Graphics and VR.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
Data Models, Pixels, and Satellite Bands. Understand the differences between raster and vector data. What are digital numbers (DNs) and what do they.
What is GIS? “A powerful set of tools for collecting, storing, retrieving, transforming and displaying spatial data”
Distortion Correction ECE 6276 Project Review Team 5: Basit Memon Foti Kacani Jason Haedt Jin Joo Lee Peter Karasev.
BR SQL SUPPORT I have a legacy application and I don’t intend to rewrite it any time soon. Why should I be concerned with this?
Copyright © 2010 The HDF Group. All Rights Reserved1 Data Storage and I/O in HDF5.
A FIRST BOOK OF C++ CHAPTER 7 ARRAYS. OBJECTIVES In this chapter, you will learn about: One-Dimensional Arrays Array Initialization Arrays as Arguments.
Table General Guidelines for Better System Performance
Manipulating MATLAB Matrices Chapter 4
INTRODUCTION TO GEOGRAPHICAL INFORMATION SYSTEM
Prof. Leonardo Mostarda University of Camerino
Introduction to HDF5 Session Five Reading & Writing Raw Data Values
Digital Data Format and Storage
Naming and Binding A computer system is merely a bunch of resources that are glued together with names Thus, much of system design is merely making choices.
CS399 New Beginnings Jonathan Walpole.
Software Design and Architecture
Other Kinds of Arrays Chapter 11
Other Kinds of Arrays Chapter 11
Net 323 D: Networks Protocols
Computer Systems and Networks
Database Performance Tuning and Query Optimization
Two Dimensional Arrays
CS 2770: Computer Vision Linear Algebra and Matlab
Overview What is Multimedia? Characteristics of multimedia
Digital Image Processing using MATLAB
Chapter 2: The Linux System Part 2
Content-Based Image Retrieval
Informatics 43 – May 26, 2016.
Content-Based Image Retrieval
SETL: Efficient Spark ETL on Hadoop
Coding Concepts (Data Structures)
Table General Guidelines for Better System Performance
Net 323 D: Networks Protocols
Storage Structure and Efficient File Access
Lecture Topics: 11/1 General Operating System Concepts Processes
XDR External Data Representation
Chapter 11 Database Performance Tuning and Query Optimization
Functions continued.
Convolution Layer Optimization
Data Structures and ADTs
Game Programming Algorithms and Techniques
CS 295: Modern Systems Lab2: Convolution Accelerators
Presentation transcript:

ITKv4 Image Interpretation Layer

ITK - IO ImageIOBase VectorImage NumberOfComponents IOComponentType IOPixelType ConvertPixelBuffer Nested Switchs Based on Input Number Of Components Vs Output Number Of Components Buffer Image

Pixel and Component Types ● UNKNOWNPIXELTYPE ● SCALAR ● RGB ● RGBA ● OFFSET ● VECTOR ● POINT ● COVARIANTVECTOR ● SYMMETRICSECONDR ANKTENSOR ● DIFFUSIONTENSOR3D ● COMPLEX ● FIXEDARRAY ● MATRIX ● UNKNOWNCOMPON ENTTYPE ● UCHAR ● CHAR ● USHORT ● SHORT ● UINT ● INT ● ULONG ● LONG ● FLOAT ● DOUBLE

ITK - IO ImageIOBaseImage NumberOfComponents IOComponentType IOPixelType Interpretation Layer User Provided Rules Data Layout Components TimePoint Dimensions Resolutions Buffer

ITK - IO ImageIOBase NumberOfComponents IOComponentType IOPixelType User Provided Rules Data Layout Components TimePoint Dimensions Resolutions Array of Images Interpretation Layer Potentially: Rearrange the pixel data when reading it from IO, and before storing it in the interpretation layer

ITK - IO ImageIOBase NumberOfComponents IOComponentType IOPixelType User Provided Rules Data Layout Components TimePoint Dimensions Resolutions Array of Images Programmable at Run Time Interpretation Layer Default Rules could come from the file format too (when the data layout is specified).

What Conversions and When... ● What conversions should be made in the IO ? ● Some interpretation should be made in the IO object, to make it efficient. ● Leverage existing code. ● What conversions should be made after IO ? ● Separate what we need to know at: ● Compile time ● Run time

What Portion of Data To Read... ● Support stream ● Provide an API to select subsets (sub-regions) ● Specific resolutions (or set of resolutions) ● Subset of channels

ITK - IO Array of Images Delivers Images On Demand Query Methods Components TimePoint Dimensions Resolutions Image Container Image ● Component K ● TimePoint P ● Region R ● Resolution L itk::ImageSet

ITK - IO Array of Images Abstract Service Image ● Component K ● TimePoint P ● Region R ● Resolution L

ITK - IO Array of Images Abstract Service Image ● Component K ● TimePoint P ● Region R ● Resolution L DICOM Server

ITK - IO Array of Images Abstract Service Image ● Component K ● TimePoint P ● Region R ● Resolution L Image Database

ITK - IO Array of Images Abstract Service Image ● Component K ● TimePoint P ● Region R ● Resolution L Web Service

ITK - IO Array of Images Abstract Service Image ● Component K ● TimePoint P ● Region R ● Resolution L Interprocess Communication (Slicer 3D / MRML-Id-IO)

Suggested API – Image Interpretation Image Interpretation Abstract Service ● Query ● What is in these files / direc ● Get native data layout ● Describe Data Layout ● To reinterpret the data ● Set(“attribute”,int dimension) ● Data Extraction ● Give me a subset of the images → Stored in an ImageSet

Suggested API – Image Set Image Set ● Data container ● In memory ● Has a collection of heterogeneous ● e.g. different resolution – Different image size ● But same pixel type ● Different number of channels – With the same component type

Suggested API – Image Set Image Set ● Query methods ● Ask what is inside ● Is it redundant ? ● Extract methods ● Give me image X and put it in a Image ● The extraction could produce an ImageSet ● Must support multi-resolution ● High performance for data access ImageSet char,int,..., double

Suggested API – Set Set ● SpatialObjects ?

Image Set – Filter Manager Image Set Image Set Filter Manager Filter X

Image Set – Data Layout Reorganizer Image Set Image Set Filter Reorganizer Do the Filter Reorganizer has to be template-less ?

Image Set – Example Scenario Imag e Set Filter Reorganizer Imag e Set Filter Manager Filter X Pipeline Manager ?

Suggested API – Image Time Series Image Video With ring buffer inside ● Move across time ● Notion of streaming ● Across time ● Large overlaps ● Pixel type can be known at compilation time (maybe a template parameter)

Microscopy Cases ● 2D Images ( about 2K x 2K ) ● Eight Dimensions ● 3D – Z (100~200) (may be uneven) ● Channels (3~5) ● Time Points (0~2000) (may be uneven) ● Tiled in Space (x,y,z) (with overlap) ( ~5 each dim) ● Row, Columns (embryos in a plate) (~16 x ~6) ● Plates (~100)

Remote Sensing Case ● 2D Images ( about 2K x 2K → 40K x 40 K) ● May be a non-rectilinear grid ● 2.5 D Image (elevation) ● Bands (~4 → 250 (spectral)) (uneven sampling of spectrum) ● SAR (synthetic aperture radar) ● Complex images ● Horiz/Vertical polarization ● Up to 4 bands each one with complex values ● Multi-Resolutions ● 1km resolution in a band, and 50m resolution in other. ● Time Points (uneven) ● Heterogeneous Size (of overlapping regions) ● Heterogeneous Modalities

Video Cases ● 2D Frames ● Evenly space in time ● Grayscale image ● Multiple channels (RGB,HSV) ● Uneven space in time ● 3D + t ● 3D Ultrasound