An Introduction to Images - SCI Utah

An Introduction to Images - SCI Utah
An Introduction to Images
Chapter 01/02 DIP
CS6640/BIOENG6640
Guido Gerig
U of Utah, School of Computing
University of Utah
Credits: Ross Whitaker, Utah SoC
1
Module 1: Goals
• Understand images as mappings
– Understand the difference – continuous vs
discrete
– Be able to identify domain and range of an image
in a precise way
• Know several examples of images
– How they are used
– How they are formed
• Understand domain topology, physical
dimensions, and resolution of images
• Understand and be able to use (e.g. reason
about and implement)
– Arithmetic operations, neighborhoods, adjacency, 2
connected components
What Is A Digital Image?
• A file you download from the web
(e.g. image.jpg)
• What you see on the screen
• An array (regular grid) of data
values
• A mapping from one domain to
another
– A discrete sampling
(approximation) of a function
3
Digital Image Acquisition Process
4
Image As A Mapping
(Function)
domain
range
5
Image As A Mapping:
Issues
•
•
•
•
Dimensionality of domain (n = ?)
Dimensionality of range (m = ?)
n
m
Typically use shorthand of R or R
Discrete or continuous
– Discrete reasoning/math
– Continuous math (calculus) –> discrete
approximation
– Issues for both domain and range
6
Examples of “Images” as
Functions
“Graph”
“x” or “t”
8
Images As 2D Functions
“Graph”
y
x
Project brightness on a
screen with values at
coordinates (x,y)
proportional to value of
f(x,y)
y
9
3D Images – Volumes
z
y
x
Slice
Impossible to graph:
Slicing
Volume rendering
Scientific visualization
10
Digital Image: Continuous to Discrete
Sampling (space) and
Quantization (intensity)
11
Digital Image: Continuous to Discrete
Sampling (space) and
Quantization (intensity)
12
Multivalued Images
• Color images: mappings to some subset of R3
– Color spaces: RBG, HSV, etc.
• Spectral imagery
– Measure energy at different bands within the
electromagnetic spectrum
• E.g. Satellite images
13
Image As Grid of Values
Unstructured grid
• Two views
– Domain is a discrete set of
samples
– Samples are points from an
underlying continuous function
• How is the grid organized?
– Unstructured
• Points specified by position and value
– Structured grids
• Position inferred from structure/index
• 1D, 2D, 3D, ….
• Sizes w, w x h, w x h x d
f1
x1
y1
f2
x2
y2
f3
x3
y3
…
…
…
2
1
4
3
Structured grids
14
Sampling Effect of spatial
resolution
15
Quantization: Effect of
intensity levels
16
Where Do Digital Images Come
From?
• Digitizing film or paper
– Rasterize, sample reflectance/transmission
on grid
17
CCD Cameras
Optics
Image plane
18
X-Rays
Projection
Image plane
19
X-Ray Images
20
Computed Tomography
Series of projections
Reconstruction
Volume
21
CT (CAT)
22
Magnetic Resonance Imaging
Generate field
Coil
Random
orientation (water
molecules)
Magnetic field –
align spins
Detect/measure field
Coil
Spins become
random (generate
field)
23
MRI
24
Nuclear Medicine
PET, SPECT, …
Injection&detection
Reconstruction
Volume/Image
Emission
25
Detectors
Serial Sectioning
Electron Beam/Light
Thin Section
Specimen
Projection (Film)
26
Serial Section Transmission
Electron Microscopy
27
Examples
• Quality control of
surface-mount
packaging
• Retinal
architecture from
serial section
TEM
• Image-based
phenotyping
Wild Types
Images
Mutant
Images
28
Fingerprint images
• Ink technique
– spread ink
– press on paper
– capture with CCD camera
or scanner
• Latent fingerprints
• Live-scan
– Optical sensors
– Capacitive sensor
– Thermal sensor
– Pizoelectric (pressure)
29
Tolga Tasdizen - ECE 6962 Lecture Notes, U. of Utah
Fingerprint matching
• Fingerprint patterns are
unique to the individual
• Matching
Minutiae
– using the ridges directly
is hard
– often singularity points
are used
• Local: Minutiae
• Global: Loop, delta, ...
Loop
Delta
Ridges
30
Tolga Tasdizen - ECE 6962 Lecture Notes, U. of Utah
Array vs. Matrix Operations
Matrix multiply
( MATLAB A*X )
Array multiply
( MATLAB A.*X )
Images can be represented as matrices, but the operations
refer to array operations unless otherwise specified
38
Arithmetic Operations on Images
• Arithmetic operations on pixel values
– Multiple images with the same domain
– Image become arguments
• Implied that the operation is applied pointwise
across the domain
– Addition, subtraction, multiply, divide,
boolean
39
Arithmetic operations: f + g
Averaging (adding) multiple images can reduce noise
40
© 1992–2008 R. C. Gonzalez & R. E. Woods
Arithmetic operations: f - g
Digital Subtractive Angiography
(DSA)
41
© 1992–2008 R. C. Gonzalez & R. E. Woods
Image Subtraction: Motion Detection
42
© 1992–2008 R. C. Gonzalez & R. E. Woods
Arithmetic operations: f x g
43
© 1992–2008 R. C. Gonzalez & R. E. Woods
Arithmetic operations: f / g
Captured image
Illumination
Corrected image
44
Operations on Cartesian
Image Grids
•
•
•
•
•
•
Grid resolution
Neighborhoods
Adjacency and connectivity
Paths
Connected components
Flood fill
45
Image Coordinates and Resolution
• A single point on an image grid is a “pixel”
– Sometimes this is just the location, sometimes
also the value
• References to pixels
– Single index (implied ordering) “i” or “f(i)”
– Multiple index (gives position on logical grid) “i,j” or
“f(i,j)”
• Physical coordinates
– Logical coordinates place the pixel in physical
space
Different physical realizations of the
– r - resolution (e.g. mm’s)
same logical grid
– o - origin
Resolution vs size vs
dimension
46
Index Sets
• An index set is a collection
of pixel locations
– Used to specify subsets of
an image
– All boolean set operations
apply
• Convention
• Represent the set as an image
with 0 indicating non
membership and >0 indicating
membership
• Logical operations become
arithmetic operations
47
Neighborhood
• Neighborhood (N): a set of relative
indices that satisfy the symmetry
condition
– Symmetry:
• Applying neighborhoods:
– I.e. you translate neighborhoods to
different locations
• Notice:
48
Adjacency
• Impose topological structure on the grid
• Local relationships between pixels
• Help to establish distances, paths,
connectedness, etc.
• Typically adjacency is local and symmetric
• For 2D images we consider:
4 connected
8 connected
Denote
49
Paths
• Path: Ordered set of indices such that
consecutive indices are adjacent
• Noncylic path – unique indices
• Closed path – noncyclic and first and
last adjacent
50
Distances in Images
• Grid distance vs physical distance
– Physical distance between pixels I and J
– Grid distance: options
• Grid Euclidean
• Manhattan (city block)
• Shortest path
– Assign cost to each transition between adjacent pixels
– Find path with shortest cost
51
Distances in Images
• Grid distance vs physical distance
– Physical distance between pixels I and J
– Grid distance: options
• Grid Euclidean
• Manhattan (city block)
• Shortest path
– Assign cost to each transition between adjacent pixels
– Find path with shortest cost
52
Manhattan Distance / City
Block Distance
53
Manhattan Distance / City
Block Distance
54
Manhattan Distance / City
Block Distance
(x,y)
Which path
is shorter?
D4 ( p, q)  x  s  y  t
(y,t)
55
Pixels with D4 distance from
center
56
Pixels with D8 distance from
center
57
Connected Component
• Consider image with a binary property
– I.e. test on each index B(I) returns either
true or false
• Correct path : path for which every pixel
satisfies B(I)
• Connected component (C) : set of pixels
such that for every pair of pixels in C
there exists a correct path between
them
58
Connected Component
• How many distinct CC’s are there?
59
A Simple Algorithm: Flood Fill
• Highlight regions in an image
• “Test(i, j)” - is value at pixel (i,j) between
a and b
• Inputs: seed, image, test function
• Data structures: input array, output
array, list of grid points to be processed
60
A Simple Algorithm: Flood Fill
• Empty list, clear output buffer (=0)
• Start at seed (i,j) and if Test(i,j), put (i,j) on list and
mark out[i,j]=1
• Repeat until list of points is empty:
– Remove point (i,j) from list
– (Loop) for all 4 neighbors (i’,j’) of (i,j)
• If (Test(i’,j’) and out[I’,j’]==0) put (i’,j’) on list and mark out[i’,j’]=1
• Properties
– Guaranteed to stop
– Worst case run time
61
Connected Component
Analysis
• Input: image and test
• Output: an integer image (label map)
that has either “0” (failed test) or a
positive integer associated with each
distinct connected component
62
CC – Purpose
• When objects are distinguishable by a simple test
(e.g. intensity threshold)
• Delineate distinct objects for subsequent processing
– E.g Count the number, sizes, etc.
– Statistics, find outliers irregular objects
63
CC Output/Extensions
• Output is typically a “label map”
• How to handle foreground/background,
etc
• How to display
64
Next Class
• First part Chapter 03 G&W: Gray
Levels, Probability, Histograms
• Reading material: Review of
probabilities
65
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement