Lezione Interpolazione
Lezione Interpolazione
Lezione Interpolazione
IMAGE INTERPOLATION
Francesca Pizzorni Ferrarese
Image Interpolation
2
Introduction
What
Interpolation Techniques
1D
is image interpolation? (D-A conversion) Why do we need it? zero-order, first-order, third-order 2D = two sequential 1D (divide-and-conquer) Directional(Adaptive) interpolation*
Digital
Interpolation Applications
zooming (resolution enhancement) Image inpainting (error concealment) Geometric transformations (where your imagination can fly)
Introduction
3
image f(x,y) tells us the intensity values at the integral lattice locations, i.e., when x and y are both integers Image interpolation refers to the guess of intensity values at missing locations, i.e., x and y can be arbitrary Note that it is just a guess (Note that all sensors have finite sampling distance)
A Sentimental Comment
4
Havent we just learned from discrete sampling (A-D conversion)? Yes, image interpolation is about D-A conversion Recall the gap between biological vision and artificial vision systems
Digital:
Engineering Motivations
5
When
we see a video clip on a PC, we like to see it in the full screen mode some block of an image gets damaged during the transmission, we want to repair it images digitally can render fancy artistic effects as we often see in movies
We
If
We
Manipulate
Low-Res. High-Res.
Non-damaged
Damaged
Image Interpolation
9
Introduction
Interpolation Techniques
What is image interpolation? Why do we need it? 1D linear interpolation (elementary algebra) 2D = 2 sequential 1D (divide-and-conquer) Directional(adaptive) interpolation* Digital zooming (resolution enhancement) Image inpainting (error concealment) Geometric transformations
Interpolation Applications
Upsampling
This
image
is
too
small
for
this
screen:
How
can
we
make
it
10
9mes
as
big?
Simplest
approach:
repeat
each
row
and
column
10
9mes
( Nearest
neighbor
interpola9on )
Image
interpola9on
d = 1 in this example
1
2
3
4
5
It
is
a
discrete
point-sampling
of
a
con9nuous
func9on
If
we
could
somehow
reconstruct
the
original
func9on,
any
new
image
could
be
generated,
at
any
resolu9on
and
scale
Adapted
from:
S.
Seitz
Image
interpola9on
d = 1 in this example
1
2
3
4
5
It
is
a
discrete
point-sampling
of
a
con9nuous
func9on
If
we
could
somehow
reconstruct
the
original
func9on,
any
new
image
could
be
generated,
at
any
resolu9on
and
scale
Adapted
from:
S.
Seitz
Image
interpola9on
d = 1 in this example
1
2
2.5
3
4
5
Image interpolation
Ideal
reconstruc9on
Nearest-neighbor interpola9on
Linear interpola9on
Gaussian
reconstruc9on
Source:
B.
Curless
Ideal reconstruction
15
Ideal reconstruction
16
Ideal reconstruction
17
Image interpolation
Original
image:
x
10
Nearest-neighbor interpola9on
Bilinear interpola9on
Bicubic interpola9on
1D Zero-order (Replication)
19
f(n) n
f(x) x
f(n) n
f(x) x
Heuristic: the closer to a pixel, the higher weight is assigned Principle: line fitting to polynomial fitting (analytical formula) f(n) f(n+a) f(n+1)
1-a
f(n+a)=(1-a)f(n)+af(n+1), 0<a<1 Note: when a=0.5, we simply have the average of two
Numerical Examples
22
From 1D to 2D
24
Engineers wisdom: divide and conquer 2D interpolation can be decomposed into two sequential 1D interpolations. The ordering does not matter (row-column = column-row) Such separable implementation is not optimal but enjoys low computational complexity If you dont know how to solve a problem, there must be a related but easier problem you know how to solve. See if you can reduce the problem to the easier one. - rephrased from G. Polyas How to Solve It
25
row
column
f(m,n)
g(m,n)
Numerical Examples
26
a c
b d first-order
zero-order a a c c a a c c b b d d b b d d
a (a+c)/2 c
b (b+d)/2 d
Bicubic Interpolation*
28
http://en.wikipedia.org/wiki/Bicubic_interpolation
Edge blurring
Jagged artifacts
Z X X Z
Edge-Sensitive Interpolation
30
Step 1: interpolate the missing pixels along the diagonal a x c d b Since |a-c|=|b-d| x has equal probability of being black or white
black or white?
Step 2: interpolate the other half missing pixels a d c x b Since |a-c|>|b-d| x=(b+d)/2=black
Image Interpolation
31
Interpolation Applications
Digital zooming (resolution enhancement) Image inpainting (error concealment) Geometric transformations (where your imagination can fly)
Pixel Replication
32
Bilinear Interpolation
33
Bicubic Interpolation
34
35
Bayer Pattern
Image Example
37
Error Concealment*
38
damaged
interpolated
Image Inpainting*
39
Image Mosaicing*
40
Geometric Transformation
41
Basic Principle
42
(x,y) (x,y) is a geometric transformation We are given pixel values at (x,y) and want to interpolate the unknown values at (x,y) Usually (x,y) are not integers and therefore we can use linear interpolation to guess their values
Rotation
43
x x
sin x y cos
MATLAB Example
44
z=imread('cameraman.tif'); % original coordinates [x,y]=meshgrid(1:256,1:256); % new coordinates a=2; for i=1:256;for j=1:256; x1(i,j)=a*x(i,j); y1(i,j=y(i,j)/a; end;end % Do the interpolation z1=interp2(x,y,z,x1,y1,'cubic');
Rotation Example
45
=3o
Scale
46
a=1/2
x' a 0 x y ' = 0 1 / a y
Affine Transform
47
square
parallelogram
x' .5 1 x 0 y ' = .5 2 y + 1
Shear
49
square
parallelogram
x' 1 0 x d x y ' = s 1 y + d y
Shear Example
50
x' 1 0 x 0 y ' = .5 1 y + 1
Projective Transform
51
B A D B A C
C D
square
x '=
a1 x + a2 y + a3 a7 x + a8 y + 1
quadrilateral
a4 x + a5 y + a6 y' = a7 x + a8 y + 1
[ 0 0; 1 0; 1 1; 0 1]
Polar Transform
53
y = tan x
1
r = x2 + y 2
r -> sqrt(r)
http://astronomy.swin.edu.au/~pbourke/projection/imagewarp/
Seung-Yong Lee et al., Image Metamorphosis Using Snakes and Free-Form Deformations,SIGGRAPH1985, Pages 439-448
58