Introduction to IDL

Post on 11-Jan-2016

34 views 0 download

description

Introduction to IDL. Dr James Scuffham. What is IDL?. I nteractive D ata L anguage. “Procedural” programming language Compiled functions and procedures OR run-time interpreter Enormous library of pre-written and validated routines Widely used in the medical imaging community. - PowerPoint PPT Presentation

Transcript of Introduction to IDL

Introduction to IDL

Dr James Scuffham

What is IDL?

• “Procedural” programming language

• Compiled functions and procedures OR run-time interpreter

• Enormous library of pre-written and validated routines

• Widely used in the medical imaging community

Interactive Data Language

What can it do?• Data Analysis and

modelling:– Maths: calculus, solve

equations, FFT, DWT, optimisation

– Statistics: regression, hypothesis testing, curve fitting

• Image Processing:– Translate, transpose, rotate,

zoom, resample, extract, warp– Regions of interest, profiles,

histograms– Filtering, edge enhancement,

2D-FFT– Convolution, correlation,

feature extraction

• Data Visualisation:– Plot graphs and display

images– Animate dynamic data– Volume rendered surface

plots– Vector field visualisation

• Application development:– ‘Widgets’– Cross-platform capability:

“Virtual Machine”

Applications in Nuclear Medicine

• Supports DICOM and Interfile formats

• Displaying static images, drawing ROIs, obtaining statistics

• Displaying dynamic images, plotting time-activity curves, processing results

• Performing advanced image processing

Basic Image ProcessingREAD_INTERFILE, ‘muga.HDR’, X

frame0=ROTATE(X,7)

frame0 = CONGRID(frame0,512,512)

XROI, BYTSCL(frame0), STATISTICS=stats

Dynamic Images

PRO cine_muga, data, repeats

data = BYTSCL(ROTATE(data,7))

data = CONGRID(data, 512, 512)

howbig = SIZE(data)

FOR c = 0, howbig[3]*repeats DO BEGIN

display_image = data[*,*,(c MOD howbig[3]-1)]

TV, display_image

ENDFOR

END

Curve Processingleft_area = INT_TABULATED(time, left_kid)

right_area = INT_TABULATED(time, right_kid)

left_div_func = 100.0*left_area/(left_area+right_area)

right_div_func = 100.0*right_area/(left_area+right_area)

Right = 44%

Left = 56%

3D Data Visualisation

• slices

• isosurfaces

• contours

Application Development

Advanced Image Processing

Summary

IDL is really useful…..

……and not just for image processing