Geometric Operations and Morphing 1 Geometric Transformation Operations

  • Slides: 57
Download presentation
Geometric Operations and Morphing 1

Geometric Operations and Morphing 1

Geometric Transformation · Operations depend on pixel’s Coordinates. · Context free. · Independent of

Geometric Transformation · Operations depend on pixel’s Coordinates. · Context free. · Independent of pixel values. (x, y) I(x, y) (x’, y’) I’(x’, y’)

 • Example: Translation (x’, y’) (x, y) I’(x’, y’)

• Example: Translation (x’, y’) (x, y) I’(x’, y’)

Forward Mapping · Forward mapping: Source Target Forward Mapping

Forward Mapping · Forward mapping: Source Target Forward Mapping

Forward vs. Inverse Mapping · Forward mapping: Source Target Forward mapping · Problems with

Forward vs. Inverse Mapping · Forward mapping: Source Target Forward mapping · Problems with forward mapping due to sampling: – Holes (some target pixels are not populated) – Overlaps (some target pixels assigned few colors)

· Inverse mapping: Source Target Inverse Mapping · Each target pixel assigned a single

· Inverse mapping: Source Target Inverse Mapping · Each target pixel assigned a single color. · Color Interpolation is required.

 • Example: Scaling along X – Forward mapping: Target Source (0, 0) –

• Example: Scaling along X – Forward mapping: Target Source (0, 0) – Inverse mapping: Source Target

Interpolation • What happens when a mapping function calculates a fractional pixel address? •

Interpolation • What happens when a mapping function calculates a fractional pixel address? • Interpolation: generates a new pixel by analyzing the surrounding pixels.

Interpolation • Good interpolation techniques attempt to find an optimal balance between three undesirable

Interpolation • Good interpolation techniques attempt to find an optimal balance between three undesirable artifacts: edge halos, blurring and aliasing. x 4 scaling N. N 9 Bilinear Bicubic

Nearest Neighbor Interpolation • The assign value is taken from the pixel closest to

Nearest Neighbor Interpolation • The assign value is taken from the pixel closest to the generated location: • Advantage: – Fast • Disadvantage: – Jagged results – Discontinues results

Original Image Nearest N. Interpolation

Original Image Nearest N. Interpolation

Original Image Nearest N. Interpolation

Original Image Nearest N. Interpolation

Bilinear Interpolation • The assigned value is an intermediate value between the four nearest

Bilinear Interpolation • The assigned value is an intermediate value between the four nearest pixels:

Linear Interpolation ve v vw xw x • Isolating v in the above equation:

Linear Interpolation ve v vw xw x • Isolating v in the above equation: xe

Bilinear Interpolation • The assign value is a weighted sum of the four nearest

Bilinear Interpolation • The assign value is a weighted sum of the four nearest pixels. • Each weight is proportional to the distance from each existing pixel.

NW SW V S N NE SE • The bilinear interpolation is the best

NW SW V S N NE SE • The bilinear interpolation is the best fit low-degree polynomial of the form: • The pixel’s boundaries are C 0 continuous (continuous values across boundaries).

Bilinear example s s z=15 t z=7 v t 0 z=2 z=3 1 0

Bilinear example s s z=15 t z=7 v t 0 z=2 z=3 1 0

Nearest N. Interpolation Bilinear Interpolation

Nearest N. Interpolation Bilinear Interpolation

Nearest N. Interpolation Bilinear Interpolation

Nearest N. Interpolation Bilinear Interpolation

Bicubic Interpolation • The assign value is a weighted sum of the 4 x

Bicubic Interpolation • The assign value is a weighted sum of the 4 x 4 nearest pixels:

How can we find the right coefficients? • Denote the pixel values Vpq {p,

How can we find the right coefficients? • Denote the pixel values Vpq {p, q=0. . 3} • The unknown coefficients are aij {i, j=0. . 3} • We have a linear system of 16 equations with 16 coefficients. • The pixel’s boundaries are t C 1 continuous (continuous derivatives across boundaries). 21 s

N. N Bilinear Bicubic

N. N Bilinear Bicubic

N. N

N. N

Bilinear

Bilinear

Bicubic

Bicubic

Applying the Transformation T = …… % 2 x 2 transformation matrix [r, c]

Applying the Transformation T = …… % 2 x 2 transformation matrix [r, c] = size(img) % create array of destination x, y coordinates [X, Y]=meshgrid(1: c, 1: r); % calculate source coordinates source. Coor = inv(T) * [X(: ) Y(: ) ] ‘ ; % calculate nearest neighbor interpolation Xs = round(source. Coor(1, : )); Ys = round(source. Coor(2, : )); indx=find(Xs<1 | Xs>r); %out of range pixels Xs(indx)=1; Ys(indx)=1; indy=find(Ys<1 | Ys>c); Xs(indy)=1; Ys(indy)=1; %out of range pixels % calculate new image new. Image = img((Xs-1). *r+Ys); new. Image(indx)=0; new. Image = reshape(new. Image, r, c);

Types of linear 2 D transformations • Rigid (Euclidean) transformation: – Translation + Rotation

Types of linear 2 D transformations • Rigid (Euclidean) transformation: – Translation + Rotation (distance preserving). • Similarity transformation: – Translation + Rotation + Uniform Scale (angle preserving). • Affine transformation: – Translation + Rotation + Scale + Shear (parallelism preserving). • Projective transformation – Cross-ratio preserving • All above transformations are groups where Rigid Similarity Affine Projective

Homogeneous Coordinates • Homogeneous Coordinates is a mapping from Rn to Rn+1: • Note:

Homogeneous Coordinates • Homogeneous Coordinates is a mapping from Rn to Rn+1: • Note: (tx, ty, t) all correspond to the same nonhomogeneous point (x, y). E. g. (2, 3, 1) (6, 9, 3) (4, 6, 2). • Inverse mapping:

Some 2 D Transformations • Translation : • Affine transformation: • Projective transformation:

Some 2 D Transformations • Translation : • Affine transformation: • Projective transformation:

Hierarchy of Linear 2 D Transformations

Hierarchy of Linear 2 D Transformations

Non Linear 2 D Transformations • Non linear transformations do not necessarily preserve straight

Non Linear 2 D Transformations • Non linear transformations do not necessarily preserve straight lines. • Methods: – Piecewise linear transformations – Non linear parametric mapping

 • Non linear mapping: • Example: non linear (radial) lens distortions:

• Non linear mapping: • Example: non linear (radial) lens distortions:

Transformation Estimation • Let: x’=fx(x, y, px) ; y’=fy(x, y, py), where px and

Transformation Estimation • Let: x’=fx(x, y, px) ; y’=fy(x, y, py), where px and py are vector of parameters. • If the mappings are linear in px and py the parameters can be estimated using linear regression.

 • Example: Affine transformation • Alternative representation:

• Example: Affine transformation • Alternative representation:

 • Given k points (P 1, P 2, . . Pk) in 2

• Given k points (P 1, P 2, . . Pk) in 2 D that have been transformed to (P'1, P'2, . . , P'k) by affine transformation: – How many points uniquely define the affine (projective) transformation? – How can we find the affine transformation? – What if we have more points? – What can be done if points coordinates are inaccurate?

Image Warping and Morphing • Image rectification. • Key frame animation. • Image Synthesis

Image Warping and Morphing • Image rectification. • Key frame animation. • Image Synthesis – Facial expression – Viewing positions Image Metamorphosis.

Image Metamorphosis

Image Metamorphosis

Cross Dissolve (pixel operations) Source Image Destination Image t cross dissolve warp + dissolve

Cross Dissolve (pixel operations) Source Image Destination Image t cross dissolve warp + dissolve

Warping + Cross Dissolve • Warp source image towards intermediate image. • Warp destination

Warping + Cross Dissolve • Warp source image towards intermediate image. • Warp destination image towards intermediate image. • Cross-dissolve the two images by taking the weighted average at each pixel. source Cross-dissolve time destination warping images

warp Cross-dissolve warp

warp Cross-dissolve warp

Image Metamorphosis • Let S, T be the source and the target images •

Image Metamorphosis • Let S, T be the source and the target images • Let G(p) be the transformation from S towards T, where G(0)=I the identity transformation • Let t [0, 1] the time step to be synthesized Algorithm: 1. Warp S towards T: 2. Warp T toward S: 3. Cross dissolve:

t sourse S(t)=G(tp){S} I(t)=(1 -t)S(t)+t(T(t)) target T(t)=G((1 -t)p)-1{T}

t sourse S(t)=G(tp){S} I(t)=(1 -t)S(t)+t(T(t)) target T(t)=G((1 -t)p)-1{T}

Feature Based Morphing • Morph one shape into another shape • Use local features

Feature Based Morphing • Morph one shape into another shape • Use local features to define the geometric warping

One Segment Warping Q’ Q u v R R’ P u’ v’ P’ Source

One Segment Warping Q’ Q u v R R’ P u’ v’ P’ Source Image Dest Image • [0, 1] is the relative position along the segment (P’, Q’). • is the actual perpendicular distance to the segment. • (u’, v’) is the local coordinates of the segment (P’, Q’): – u’ is a unit vector parallel to Q’-P’ – v’ is the unit vector perpendicular to Q’-P’

Q’ R’ u’ v’ P’ • The point R’ is mapped into ( ,

Q’ R’ u’ v’ P’ • The point R’ is mapped into ( , ) : where

Q’ Q u v R Source Image R’ P u’ v’ P’ Dest Image

Q’ Q u v R Source Image R’ P u’ v’ P’ Dest Image Inverse Mapping: where (u, v) is the local coordinates of the segment (P, Q):

Multiple Segment Warping Q 1 R 1 1 2 Q 2 R 2 P

Multiple Segment Warping Q 1 R 1 1 2 Q 2 R 2 P 1 Q 2’ Q 1’ ’ 1 P 2 R’ ’ 2 P 1’ P 2’ • In multiple segment warping the point R’ is influenced by multiple segments. • The influence strength of each segments is proportional to: – Segment length – The distance from the point R’

 • The influence of each segments is: • The value p [0, 1]

• The influence of each segments is: • The value p [0, 1] controls the influence of the line length. • The value a is a small number avoiding division by zero. • The value b determines how the relative weight diminish as the increases • The final mapping is:

Example: Example images from: http: //www. cc. gatech. edu/classes/AY 2001/cs 4451_spring/projects/Seven/ For more details

Example: Example images from: http: //www. cc. gatech. edu/classes/AY 2001/cs 4451_spring/projects/Seven/ For more details see: Thaddeus Beier & Shawn Neely / Feature-Based Image Metamorphosis Siggraph '92 http: //www. hammerhead. com/thad/morph. html

Another Example: 56

Another Example: 56

T H E E N D

T H E E N D