Presentation is loading. Please wait.

Presentation is loading. Please wait.

Geometric Operations and Morphing.

Similar presentations


Presentation on theme: "Geometric Operations and Morphing."— Presentation transcript:

1 Geometric Operations and Morphing

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

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

4 Forward Mapping Forward mapping: Source Target Forward Mapping

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

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

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

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

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

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

11 Nearest N. Interpolation Original Image

12 Original Image Nearest N. Interpolation

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

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

15 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.

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

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

18 Nearest N. Interpolation Bilinear Interpolation

19 Nearest N. Interpolation Bilinear Interpolation

20 Bicubic Interpolation
The assign value is a weighted sum of the 4x4 nearest pixels:

21 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} s We have a linear system of 16 equations with 16 coefficients. The pixel’s boundaries are C1 continuous (continuous derivatives across boundaries). t

22 N.N Bilinear Bicubic

23 N.N

24 Bilinear

25 Bicubic

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

27 Types of linear 2D 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

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

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

30 Hierarchy of Linear 2D Transformations

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

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

33 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.

34 Example: Affine transformation
Alternative representation:

35 Given k points (P1,P2,..Pk) in 2D 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?

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

37 Image Metamorphosis

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

39 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. time Cross-dissolve warping images source destination

40 warp Cross-dissolve Cross-dissolve warp

41 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: Warp S towards T: Warp T toward S: Cross dissolve:

42 I(t)=(1-t)S(t)+t(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}

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

44 Q Q’ P P’

45 Q Q’ P’ P

46 Q Q’ P’ P

47 Q Q’ P’ P

48 Q Q’ P’ P

49 Q Q’ P’ P

50 [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’ One Segment Warping P Q R P’ Q’ R’ Source Image Dest Image v u u’ v’

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

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

53 Multiple Segment Warping
Q2 Q2’ Q1’ R1 Q1  2 1 R’ R2 ’2 ’1 P2 P1 P1’ P2’ 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’

54 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:

55 Example: Example images from: For more details see: Thaddeus Beier & Shawn Neely  / Feature-Based Image Metamorphosis Siggraph '92

56 Another Example:

57 T H E E N D


Download ppt "Geometric Operations and Morphing."

Similar presentations


Ads by Google